NAMES = ['Alice', 'Bob','Cathy','Dan','Ed','Frank',
'Gary','Helen','Irene','Jack', 'Kelly','Larry']
AGES = [20,21,18,18,19,20,20,19,19,19,22,19]
def nameage(a,b):
nameagelist = [x for x in zip(a,b)]
nameagedict = dict(nameagelist)
return nameagedict
def name(a):
for x in nameage(NAMES,AGES):
if a in nameage(NAMES,AGES).values():
print nameage(NAMES,AGES).keys()
print name(19)
我想返回19岁的人的姓名。如何通过值搜索字典并返回密钥?通过Python的字典中的值查找键值
您的示例数据不匹配你的问题。你从两个列表开始,而不是字典。如果您的数据开始在一个字典的类型,其中键=名称和值=年龄,做一个反向字典查找:一些讨论在这里http://stackoverflow.com/questions/2568673/inverse-dictionary-lookup-python#2568673 – DevPlayer 2015-07-24 01:37:16
你的名字叫“名字”也是误导性的。也许它应该被命名为“名字”,因为大多数年龄段都有多个名字。此外,您的数据意味着潜在的问题。尽管实际的数据可能不是人们的姓名,也不是人的年龄,但在任何大小的数据中,这两个对象很可能不是唯一的。在你的例子中,通常会有一个约翰史密斯在某一天出生。 – DevPlayer 2015-07-24 01:43:35