python-对字典字典中的元组列表进行排序
我有一本字典,看起来像这样:python-对字典字典中的元组列表进行排序,python,list,sorting,dictionary,tuples,Python,List,Sorting,Dictionary,Tuples,我有一本字典,看起来像这样: {'AAA': {'A1': [(0, ('a', 'b')), (3, ('c', 'd')), (2, ('a', 'b'))], 'B1': [(3, ('a', 'b')), (2, ('a', 'b')), (1, ('c', 'd'))]}, 'BBB': {'A1': [(4, ('a', 'b')), (2, ('c', 'd')), (1, ('a', 'b'))], 'B1': [(3, ('c', 'd')
{'AAA': {'A1': [(0, ('a', 'b')), (3, ('c', 'd')), (2, ('a', 'b'))],
'B1': [(3, ('a', 'b')), (2, ('a', 'b')), (1, ('c', 'd'))]},
'BBB': {'A1': [(4, ('a', 'b')), (2, ('c', 'd')), (1, ('a', 'b'))],
'B1': [(3, ('c', 'd')), (2, ('a', 'b')), (1, ('a', 'b'))]}}
我想按tuple的tuple列表中的第一个元素排序
预期结果:
{'AAA': {'A1': [(0, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))],
'B1': [(1, ('c', 'd')), (2, ('a', 'b')), (3, ('a', 'b'))]},
'BBB': {'A1': [(1, ('a', 'b')), (2, ('c', 'd')), (4, ('a', 'b'))],
'B1': [(1, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))]}}
您可以使用嵌套词典:
d = {'AAA': {'A1': [(0, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))],
'B1': [(1, ('c', 'd')), (2, ('a', 'b')), (3, ('c', 'd'))]},
'BBB': {'A1': [(1, ('a', 'b')), (2, ('c', 'd')), (4, ('a', 'b'))],
'B1': [(1, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))]}}
new_d = {a:{c:sorted(d, key=lambda x:x[0]) for c, d in b.items()} for a, b in d.items()}
输出:
{'AAA': {'A1': [(0, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))],
'B1': [(1, ('c', 'd')), (2, ('a', 'b')), (3, ('c', 'd'))]},
'BBB': {'A1': [(1, ('a', 'b')), (2, ('c', 'd')), (4, ('a', 'b'))],
'B1': [(1, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))]}}
您可以使用嵌套词典:
d = {'AAA': {'A1': [(0, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))],
'B1': [(1, ('c', 'd')), (2, ('a', 'b')), (3, ('c', 'd'))]},
'BBB': {'A1': [(1, ('a', 'b')), (2, ('c', 'd')), (4, ('a', 'b'))],
'B1': [(1, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))]}}
new_d = {a:{c:sorted(d, key=lambda x:x[0]) for c, d in b.items()} for a, b in d.items()}
输出:
{'AAA': {'A1': [(0, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))],
'B1': [(1, ('c', 'd')), (2, ('a', 'b')), (3, ('c', 'd'))]},
'BBB': {'A1': [(1, ('a', 'b')), (2, ('c', 'd')), (4, ('a', 'b'))],
'B1': [(1, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))]}}
您可以使用
list.sort
方法对列表进行排序
d = {'AAA': {'A1': [(0, ('a', 'b')), (3, ('c', 'd')), (2, ('a', 'b'))],
'B1': [(3, ('a', 'b')), (2, ('a', 'b')), (1, ('c', 'd'))]},
'BBB': {'A1': [(4, ('a', 'b')), (2, ('c', 'd')), (1, ('a', 'b'))],
'B1': [(3, ('c', 'd')), (2, ('a', 'b')), (1, ('a', 'b'))]}}
for subd in d.values():
for l in subd.values():
l.sort()
from pprint import pprint
pprint(d)
{'AAA': {'A1': [(0, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))],
'B1': [(1, ('c', 'd')), (2, ('a', 'b')), (3, ('a', 'b'))]},
'BBB': {'A1': [(1, ('a', 'b')), (2, ('c', 'd')), (4, ('a', 'b'))],
'B1': [(1, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))]}}
您可以使用
list.sort
方法对列表进行排序
d = {'AAA': {'A1': [(0, ('a', 'b')), (3, ('c', 'd')), (2, ('a', 'b'))],
'B1': [(3, ('a', 'b')), (2, ('a', 'b')), (1, ('c', 'd'))]},
'BBB': {'A1': [(4, ('a', 'b')), (2, ('c', 'd')), (1, ('a', 'b'))],
'B1': [(3, ('c', 'd')), (2, ('a', 'b')), (1, ('a', 'b'))]}}
for subd in d.values():
for l in subd.values():
l.sort()
from pprint import pprint
pprint(d)
{'AAA': {'A1': [(0, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))],
'B1': [(1, ('c', 'd')), (2, ('a', 'b')), (3, ('a', 'b'))]},
'BBB': {'A1': [(1, ('a', 'b')), (2, ('c', 'd')), (4, ('a', 'b'))],
'B1': [(1, ('a', 'b')), (2, ('a', 'b')), (3, ('c', 'd'))]}}