【发布时间】:2011-02-03 03:09:05
【问题描述】:
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 岁的人的姓名。如何按值搜索字典并返回键?
【问题讨论】:
-
您的示例数据与您的问题不匹配。你从两个列表开始,而不是字典。如果您的数据以键 = 名称和值 = 年龄的字典类型开始,请执行反向字典查找:此处进行一些讨论 stackoverflow.com/questions/2568673/…
-
另外,您的名为“name”的函数具有误导性。也许它应该被命名为“名字”,因为大多数年龄都有多个名字。此外,您的数据意味着潜在的问题。尽管实际数据可能不是人名或人的年龄,但在任何大小的数据中,这两个对象很可能不是唯一的。在您的示例中,某一天出生的约翰·史密斯通常可能不止一个。
标签: python dictionary