据我所知,这是惯性排序的。我正在尝试制作一个新字典,该字典按“键”的字母顺序排序,然后对元组中最后一个元素的值进行排序。
当前词典:
D1 = {'Lakers': [('James','PG',23,2), ('Davis', 'PF', 3, 3), ('Johnson', 'PG', 33,
1)], 'Pistons': [('Billips', 'PG', 1, 1 ), ('Wallace', 'C', 3, 3)], 'Hawks':
[('Young', 'PG', 11, 1), ('Collins', 'PF', 3, 2)] }
我想要的字典:
New_D1 = { 'Hawks':[('Collins', 'PF', 3, 2),('Young', 'PG', 11, 1)], 'Lakers': [('Davis', 'PF', 3, 3),('James','PG',23,2), ('Johnson', 'PG', 33, 1)], 'Pistons': [('Wallace', 'C', 3, 3),('Billips', 'PG', 1, 1 ) ] }
我当前的排序代码是:
New_D1 = dict(sorted(D1.items()))
这会创建一个新字典(New_D1)并且仅对键进行排序。我现在需要对元组列表的最后一个元素中的值进行排序。
最佳答案
您可以将其作为您已经在做的排序之上的理解:
>>> {k: sorted(v, key=lambda t: -t[-1]) for k, v in sorted(D1.items())}
{'Hawks': [('Collins', 'PF', 3, 2), ('Young', 'PG', 11, 1)], 'Lakers': [('Davis', 'PF', 3, 3), ('James', 'PG', 23, 2), ('Johnson', 'PG', 33, 1)], 'Pistons': [('Wallace', 'C', 3, 3), ('Billips', 'PG', 1, 1)]}
关于python - 创建新字典以首先对键进行排序,然后对值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61700486/