如何根据dict中的另一个属性计算max



如何打印字典中年龄最大的人的姓名和城市?

box_dict =  {'name': ['maor', 'gal'], 'song': ['Amsterdam', 'Berlin'], 'age': [20, 35]}
print(max(box_dict["age"]))

我可以算出年龄最大的人的年龄,但我希望他打印出这个人的名字,而不是他的年龄。

35

我只想打印最年长的的名字

gal

你怎么能只打印最年长的人的名字?

您可以将max函数与key参数一起使用,该参数允许您根据特定的属性/索引进行比较。尝试:

oldest_person_name = max(zip(box_dict["name"], box_dict["age"]), key=lambda x: x[1])[0]
print(oldest_person_name) # gal

尝试一下。它获取最大年龄的索引,并在名称值列表中使用它。

mAge = max(box_dict["age"])
prson = box_dict['age'].index(mAge)
mName = box_dict['name'][prson]

类似的东西:

d = {"name": ["maor", "gal"], "song": ["Amsterdam" "Berlin"], "age": [20, 35]}
max_index = max(d["name"], key=lambda k: d["age"][d["name"].index(k)])

最新更新