python3字典列表_在Python3中排序字典列表

我正在整理一份词典。我的目标是以相同的方式对具有多个(可能相同)键的字典进行排序,即使字典的顺序不同,或者这些键在字典中的顺序不同。在

在python2中,我使用了以下内容:a = [{1: 2, 7: 8}, {7: 8, 3: 4}, {5: 6}]

b = [{3: 4, 7: 8}, {7: 8, 1: 2}, {5: 6}]

a.sort()

b.sort()

a

Out[20]: [{5: 6}, {1: 2, 7: 8}, {3: 4, 7: 8}]

b

Out[21]: [{5: 6}, {1: 2, 7: 8}, {3: 4, 7: 8}]

这成功地实现了我的目标,即创建两个看起来完全相同的排序词典。在

我正在尝试在Python3中执行相同的操作,其中.sort()不适用于字典列表。在

我试过不同的方法。在

1。在

^{pr2}$

这不起作用:a = [{1: 2, 7: 8}, {3: 4, 7: 8}, {5: 6}]

b = [{3: 4, 7: 8}, {1: 2, 7: 8}, {5: 6}]

a2 = sorted(a, key=lambda d: max(d.keys()))

b2 = sorted(b, key=lambda d: max(d.keys()))

a2

Out[1]: [{5: 6}, {1: 2, 7: 8}, {7: 8, 3: 4}]

b2

Out[2]: [{5: 6}, {3: 4, 7: 8}, {7: 8, 1: 2}]

2。在a2 = sorted([list(zip(x.keys(),x.values())) for x in a])

a3 = [{k: v for (k,v) in x} for x in a2]

这不起作用:a = [{1: 2, 7: 8}, {7: 8, 3: 4}, {5: 6}]

b = [{3: 4, 7: 8}, {7: 8, 1: 2}, {5: 6}]

a2 = sorted([list(zip(x.keys(),x.values())) for x in a])

a3 = [{k: v for (k,v) in x} for x in a2]

b2 = sorted([list(zip(x.keys(),x.values())) for x in b])

b3 = [{k: v for (k,v) in x} for x in b2]

a3

Out[1]: [{1: 2, 7: 8}, {5: 6}, {7: 8, 3: 4}]

b3

Out[2]: [{3: 4, 7: 8}, {5: 6}, {7: 8, 1: 2}]

有人知道如何在python3中得到python2的结果吗??在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值