如何在Python的字典中打印给定值的键?

时间:2013-04-03 10:14:08

标签: python dictionary key

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

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

如何根据其价值打印某个密钥?

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

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

6 个答案:

答案 0 :(得分:14)

我不相信有办法做到这一点。这不是一本字典的用途...... 相反,你必须做类似的事情。

for key, value in dictionary.items():
    if 4 == value:
        print key

答案 1 :(得分:1)

字典的组织方式为:key - >价值

如果您尝试去:值 - >键

然后你有一些问题;重复,有时候字典会保存您不希望作为密钥的大型(或不可用)对象。


但是,如果您仍想这样做,可以通过迭代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()

答案 2 :(得分:0)

在Python 3中:

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

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

输出:

Y

答案 3 :(得分:0)

target_key = 4
for i in dictionary:
    if dictionary[i]==target_key:
        print(i)

答案 4 :(得分:0)

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

  1. 第1步:将所有VALUES提取到列表中,然后找到列表的最大值
  2. 第2步:从第1步中找到特定值的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)

答案 5 :(得分:-1)

嘿,我在这个问题上久违了,您所要做的就是将键交换为例如

的值。
Dictionary = {'Bob':14} 

您将其更改为

Dictionary ={1:'Bob'} 

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