[英]highest value in dictionary
我想做的是遍历 my_family 并返回年龄最高的成员。
my_family = {
"member1": {"Name":"Person1","Gender": "Male","Age": 24},
"member2": {"Name":"Person2","Gender": "Male","Age": 32},
"member3": {"Name":"Person3","Gender": "Female","Age": 62}
}
我的尝试如下:
k = my_family.keys()
v = my_family.values()
def highAge():
for k,v in my_family.items():
if "Age" in my_family.items():
print("Age found")
else:
print("Failed")
highAge()
当前的 output 失败。
如果您不关心密钥,那么这是解决您问题的简单方法。
my_family = {
"member1": {"Name":"Person1","Gender": "Male","Age": 24},
"member2": {"Name":"Person2","Gender": "Male","Age": 32},
"member3": {"Name":"Person3","Gender": "Female","Age": 62}
}
person_with_max_age = max(my_family.values(), key=lambda f: f["Age"])
print(person_with_max_age)
>> {'Name': 'Person3', 'Gender': 'Female', 'Age': 62}
快速修复:
你的前两行是多余的,删除它们:
k = my_family.keys()
v = my_family.values()
然后在if
语句my_family.items()
更改为v
,并将 append 更改为break
命令。 所以你的完整程序将是
def highAge():
for k, v in my_family.items():
if "Age" in v:
print("Age found")
break
else:
print("Failed")
highAge()
您还可以按年龄对字典进行排序并取最后一项
my_family = {
"member1": {"Name":"Person1","Gender": "Male","Age": 24},
"member3": {"Name":"Person3","Gender": "Female","Age": 62},
"member2": {"Name":"Person2","Gender": "Male","Age": 32},
}
my_family_sorted_by_age = sorted(my_family.items(), key=lambda item: item[1]["Age"])
print(my_family_sorted_by_age[-1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.