根据值列表中的值检索 python 字典键



我有一个生活在不同时区的人的名单。我需要确定此人属于哪个时区。

我创建了一个字典:

mydict = {'London':['bob1', 'bob2', 'bob3'],'Paris': ['bob4','bob5','bob6','bob7']}

我想通了,我可以根据它的价值通过以下方式获得密钥

mydict.keys()[mydict.values().index('bob')] 

问题是值存储在列表中。有没有办法到达它? 也许您可以看到解决问题的不同解决方案?我想过创建一个表时区|客户1|客户2|客户n-1,但这似乎也不是一个优雅的解决方案。

mydict = {'London':['bob1', 'bob2', 'bob3'],'Paris': ['bob4','bob5','bob6','bob7']}
person = 'bob5'
for key,item in mydict.items():
if person in item:
print ("Person {} is living in {}".format(person,key))

输出:

Person bob5 is living in Paris

或使用list comprehension

person = 'bob5'
city = [key for key,item in mydict.items() if person in item]
print ("Person {} is living in {}".format(person,city[0]))

输出:

Person bob5 is living in Paris

您可以创建一个函数并使其可重用。如果找到,您可以检查返回in并跳过下一次迭代

mydict = {'London':['bob1', 'bob2', 'bob3'],'Paris': ['bob4','bob5','bob6','bob7']}
def getKey(mydict,person):
for key in mydict.keys():
if person in mydict[key]:
return key
print(getKey(mydict,'bob1'))

最新更新