- 字典排序
题目:dic={"name":"zs","age":18,"city":"深圳","tel":"13626266"}
要求:字典根据键从小到大排序;
方法一:解题思路:字典无序的,需要转为列表然后用sort函数排序,
dict2 = {"name":"zs","age":"18","city":"深圳","tel":"13626266"}
a=list(dict2.items()) # dict2.items转为list方法
a.sort()
print(a)
输出:
[('age', "18"), ('city', '深圳'), ('name', 'zs'), ('tel', '13626266')]
方法二:可以用sorted排序来使用,sorted支持所有类型的排序,故字典也支持;
dict2 = {"name":"zs","age":"18","city":"深圳","tel":"13626266"}
for i in sorted(dict2):
print(i,dict2[i])
输出:
age 18
city 深圳
name zs
tel 13626266
方法三:
特别注意,如果列表排序返回为空(None),是因为sort函数方法用错;如下:
# 正确用法
a = [3,2,1]
a.sort()
print(a)
输出:
[1, 2, 3]
错误用法:
# 错误用法
b = [3,1,2]
print(b.sort())
# 错误用法
c = [3,1,2]
c1=c.sort()
print(c1)
输出:
None
None
拓展:如果字典中的值排序,则通过“__getitem__”函数;
dict2 = {"name":"zs","age":"18","city":"深圳","tel":"13626266"}
for i in sorted(dict2,key=dict2.__getitem__):
print(i,dict2[i])
输出:
tel 13626266
age 18
name zs
city 深圳