字典排序_Python 字典排序

8c8e7fc582df302794c611d187ce8d8f.png
  • 字典排序

题目: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 深圳
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值