'''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问怎么做呀
第三个循环为什么报错呢
谢谢帮助
第三个循环里由于列表的元素是字典,sort()方法无法识别排序的方法,需要自定义一个函数,告诉程序怎样排序,然后在sort()里指定key=自定义函数。
试着做以下更改:
def sort_dict(list):
return list['name']
for i in sorted(dict, key=sort_dict):
print(i['name'], end= ' ')
不过Python对中文排序,是按照unicode编码,而不是拼音,所以排序结果不同于预期。英文排序则没有这个问题。