繁体   English   中英

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

[英]Retrieve a python dictionary key based on a value from a list of values

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

我创建了一个字典:

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

我发现,我可以根据它的价值得到一个钥匙

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

问题是该值存储在列表中。 有没有办法得到它? 也许您可以看到完全不同的问题解决方案? 我想创建一个表 Timezone |customer1|customer2|customern-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'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM