我正在整理一份词典。我的目标是以相同的方式对具有多个(可能相同)键的字典进行排序,即使字典的顺序不同,或者这些键在字典中的顺序不同。在
在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的结果吗??在