船舶ouo 2022-04-30 11:33 采纳率: 73.3%
浏览 90
已结题

python的遍历字典 急!


'''13、⽤字典存储你10个同学的姓名和年龄,然后:
1、遍历出名字和对应年龄
2、只遍历出同学的名字
3、按字母顺序遍历出同学的名字
4、遍历出所有同学的年龄,查看⾃⼰同学都在什么年龄段
5、把遍历出的年龄去重。'''
dict=[
{'name':'孙慧欣','age':'18'},{'name':'易烊千玺','age':'20'},{'name':'张三','age':'23'},
{'name':'李四','age':'25'},{'name':'吴彦祖','age':'50'},{'name':'刘亦菲','age':'26'},
{'name':'王俊凯','age':'19'},{'name':'王五','age':'27'},{'name':'王源','age':'22'},
{'name':'彭于晏','age':'35'}
]
for i in dict :
    print (i['name'],i['age'],end=" ")
for i in dict :
    print (i['name'],end=" ")
for i in sorted(dict) :
    print (i['name'],end=" ")

第3、4、5问怎么做呀
第三个循环为什么报错呢
谢谢帮助

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-04-30 12:09
    关注

    第三个循环里由于列表的元素是字典,sort()方法无法识别排序的方法,需要自定义一个函数,告诉程序怎样排序,然后在sort()里指定key=自定义函数。
    试着做以下更改:

    def sort_dict(list):
        return list['name']
    
    for i in sorted(dict, key=sort_dict):
        print(i['name'], end= ' ')
    

    不过Python对中文排序,是按照unicode编码,而不是拼音,所以排序结果不同于预期。英文排序则没有这个问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 已采纳回答 5月1日
  • 创建了问题 4月30日

悬赏问题

  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环
  • ¥15 ADS已经下载好了,但是DAS下载不了,一直显示这两种情况,有什么办法吗,非常急!
  • ¥100 Excel 点击发送自动跳转outlook邮件