Python 如何对包含多个数值列表的词典进行排序?
我有一本字典,数据结构如下:Python 如何对包含多个数值列表的词典进行排序?,python,python-3.x,list,sorting,dictionary,Python,Python 3.x,List,Sorting,Dictionary,我有一本字典,数据结构如下: d = {'TRANSFERRED': [2281, 1031, 1775, 867, 1242], 'CLOSED': [239, 269, 645, 540, 388], 'DEFERRED': [89, 5, 68, 48, 37], 'OPEN': [3, 0, 2, 1, 0], 'IN PROGRESS': [0, 2, 4, 0, 5], 'QUEUED': [
d = {'TRANSFERRED': [2281, 1031, 1775, 867, 1242],
'CLOSED': [239, 269, 645, 540, 388],
'DEFERRED': [89, 5, 68, 48, 37],
'OPEN': [3, 0, 2, 1, 0],
'IN PROGRESS': [0, 2, 4, 0, 5],
'QUEUED': [0, 0, 0, 0, 0]}
[('DEFERRED', [489]),
('CLOSED', [239]),
('OPEN', [34]),
('IN PROGRESS', [0]),
('QUEUED', [-10]),
('TRANSFERRED', [-2281])]
字典包含带有数值的列表,我想从最低到最高排序,如下所示:
d = {'TRANSFERRED': [867, 1031, 1242, 1775, 2281],
'CLOSED': [239, 269, 388, 540, 645],
'DEFERRED': [5, 37, 48, 68, 89],
'OPEN': [0, 0, 1, 2, 3],
'IN PROGRESS': [0, 0, 2, 4, 5],
'QUEUED': [0, 0, 0, 0, 0]}
我担心字典无法排序,因为它们本质上是无序的,但其他类型(如列表和元组)不是无序的。此外,我一直在使用以下技巧对包含单个项的列表的字典排序,例如:
d2 = {'TRANSFERRED': [-2281],
'CLOSED': [239],
'DEFERRED': [489],
'OPEN': [34],
'IN PROGRESS': [0],
'QUEUED': [-10]}
sorted(d2.items(), key=lambda x: x[1], reverse=True)
结果给出了以下已排序的数据结构:
d = {'TRANSFERRED': [2281, 1031, 1775, 867, 1242],
'CLOSED': [239, 269, 645, 540, 388],
'DEFERRED': [89, 5, 68, 48, 37],
'OPEN': [3, 0, 2, 1, 0],
'IN PROGRESS': [0, 2, 4, 0, 5],
'QUEUED': [0, 0, 0, 0, 0]}
[('DEFERRED', [489]),
('CLOSED', [239]),
('OPEN', [34]),
('IN PROGRESS', [0]),
('QUEUED', [-10]),
('TRANSFERRED', [-2281])]
我想用一个包含多个数值列表的字典来复制相同的结果。我怎样才能做到这一点?请随意使用以下链接测试您的结果。欢迎提供反馈或意见以改进此问题 您可以使用
dict.items()
:
输出:
{'IN PROGRESS': [0, 0, 2, 4, 5], 'TRANSFERRED': [867, 1031, 1242, 1775, 2281], 'DEFERRED': [5, 37, 48, 68, 89], 'CLOSED': [239, 269, 388, 540, 645], 'OPEN': [0, 0, 1, 2, 3], 'QUEUED': [0, 0, 0, 0, 0]}
总是那么快,只需输入相同的解决方案!