基于值列表中的值检索python字典键

2024-09-25 08:32:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我创建了一本词典:

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

我想,我可以根据它的价值通过

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

问题是值存储在列表中。有办法吗? 也许你能找到一个完全不同的解决问题的方法?我考虑过创建一个表时区customer1 customer2 customern-1,但它似乎也不是一个优雅的解决方案。你知道吗


Tags: keysmydict词典values价值londonparis名单
2条回答
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检查person,如果找到则返回,并跳过下一次迭代

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'))

相关问题 更多 >