我的字典看起来像这样:
child_parent={}
child_parent[1]=0
child_parent[2]=0
child_parent[3]=2
child_parent[4]=2
如果给定0,如何找到值为0的pythonic列表中的所有键?
0的最终结果是[1,2]和2 [3,4]
答案 0 :(得分:4)
对字典items
:
[k for k, v in child_parent.items() if v == 0]
>>> [k for k, v in child_parent.items() if v == 0]
[1, 2]
>>> [k for k, v in child_parent.items() if v == 2]
[3, 4]
答案 1 :(得分:2)
您可以使用list comprehension:
In [62]: [k for k,v in child_parent.iteritems() if v==0]
Out[62]: [1, 2]
答案 2 :(得分:1)
def find_keys(d, x):
return [key for key in d if d[key] == x]
迭代字典d
中的每个键,并创建与值x
对应的所有键中的列表。
答案 3 :(得分:0)
如果您只是这样做一次,请在其他答案中使用列表理解方法。
如果您多次这样做,请创建一个新的dict,按值对键进行索引:
from collections import dictdefault
def valueindex(d):
nd = dictdefault(list)
for k,v in d.iteritems():
nd[v].append(k)
return nd
parent_child = valueindex(childparent)
assert parent_child[0] == [1,2]
assert parent_child[1] == [3,4]