船舶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日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改