list1 = [{'小芳':70}, {'小红': 89}, {'小刚': 99}, {'小绿': 88}]
list1.sort(key=lambda x: x['小芳'])
for item in list1:
print(item)
这是自己写的代码
student = [
{'id': '1001', 'name': '无语', 'english': 98, 'python': 100, 'c': 96},
{'id': '1002', 'name': '琦琦', 'english': 100, 'python': 96, 'c': 97},
{'id': '1003', 'name': '明日', 'english': 99, 'python': 97, 'c': 95},
{'id': '1004', 'name': '田珍', 'english': 93, 'python': 99, 'c': 98}
] # 保存学生成绩的列表
student.sort(key=lambda x :x['english']+x['python']+x['c'],reverse = True)# 按总成绩排序
for item in student: # 遍历输出排序结果
print(item)
这是给出的代码,为什么自己写的会报错
报错内容:KeyError: '小芳'
是哪里理解问题吗?
因为你的列表中不是所有字典都含有'小芳
这个键
给出的列表中的每个字典都有对应的键,所以都可以通过lambda函数获取键对应的值
你自己写的代码只有第一个字典有给定的键,因为无法在剩下的字典中找到该键,所以会报错退出有帮助望采纳~
你写的代码里,list1针对于每一个字典排序,但是只有一个字典有小芳这个键,自然会报错
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!