7

例如,假设我们有以下字典:

dictionary = {'A':4,
              'B':6,
              'C':-2,
              'D':-8}

给定它的值,如何打印某个键?

print(dictionary.get('A')) #This will print 4

你怎么能倒着做呢?即不是通过引用键来获取值,而是通过引用值来获取键。

4

6 回答 6

20

我不相信有办法做到这一点。这不是字典的使用方式......相反,您必须做类似的事情。

for key, value in dictionary.items():
    if 4 == value:
        print key
于 2013-04-03T10:16:51.910 回答
2

在 Python 3 中:

# A simple dictionary
x = {'X':"yes", 'Y':"no", 'Z':"ok"}

# To print a specific key (for instance the 2nd key which is at position 1)
print([key for key in x.keys()][1])

输出:

Y
于 2018-11-15T01:29:42.147 回答
1

字典的组织方式是:key -> value

如果你尝试去:值 -> 键

然后你有一些问题;重复,有时字典包含您不希望将其作为键的大型(或不可散列的)对象。


但是,如果您仍然想这样做,您可以通过迭代 dicts 键和值并按如下方式匹配它们来轻松地做到这一点:

def method(dict, value):
    for k, v in dict.iteritems():
        if v == value:
            yield k
# this is an iterator, example:
>>> d = {'a':1, 'b':2}
>>> for r in method(d, 2):
    print r

b

正如评论中所指出的,整个事情可以写成一个生成器表达式:

def method(dict, value):
    return (k for k,v in dict.iteritems() if v == value)

Python 版本注意:在 Python 3+ 中,您可以使用dict.items()而不是dict.iteritems()

于 2013-04-03T10:20:28.710 回答
0
target_key = 4
for i in dictionary:
    if dictionary[i]==target_key:
        print(i)
于 2019-07-11T14:51:11.837 回答
0

如果您必须在字典中找到最高 VALUE 的 KEY,请执行以下操作:

  1. 步骤 1:将所有 VALUES 提取到一个列表中并找到列表的最大值
  2. 第 2 步:从第 1 步中找到特定 VALUE 的 KEY

此代码的可视化分析器可在此链接中找到:LINK

    dictionary = {'A':4,
              'B':6,
              'C':-2,
              'D':-8}
lis=dictionary.values()
print(max(lis))
for key,val in dictionary.items() :
    if val == max(lis) :
        print("The highest KEY in the dictionary is ",key)
于 2020-05-07T17:50:59.473 回答
-1

嘿,我被这个问题困扰了很久,你所要做的就是用值交换密钥,例如

Dictionary = {'Bob':14} 

你会把它改成

Dictionary ={1:'Bob'} 

反之亦然,将键设置为值,将值设置为键,这样你就可以得到你想要的东西

于 2018-09-30T19:58:10.507 回答