Python 订购具有多个值的词典​;一键

Python 订购具有多个值的词典​;一键,python,dictionary,Python,Dictionary,字典包含以下值​​不同的人的名字和年龄。我必须把这本字典从最小的到最大的顺序排列在一个单子上。也就是说,索引0必须占用('JOHN',1),而-1必须占用('RYAN',25) 谈论字典的索引没有多大意义。如果你想要一个索引,你应该列一个列表。您可以列出值(),并使用键对其进行排序。例如: d = {1:('RYAN',25),2:('WILL',12),3:('JOHN',1),4:('MATT',15),5:('FILL',19),6:('NICK',4)} list(sorted(d.v

字典包含以下值​​不同的人的名字和年龄。我必须把这本字典从最小的到最大的顺序排列在一个单子上。也就是说,索引
0
必须占用
('JOHN',1)
,而
-1
必须占用
('RYAN',25)


谈论字典的
索引没有多大意义。如果你想要一个索引,你应该列一个列表。您可以列出
值()
,并使用键对其进行排序。例如:

d = {1:('RYAN',25),2:('WILL',12),3:('JOHN',1),4:('MATT',15),5:('FILL',19),6:('NICK',4)}

list(sorted(d.values(), key = lambda x: x[1]))
结果:

[('JOHN', 1),
 ('NICK', 4),
 ('WILL', 12),
 ('MATT', 15),
 ('FILL', 19),
 ('RYAN', 25)]
如果您确实需要dict,可以将此列表传递回
orderedict()
(或者在保留顺序的较新版本的python中传递回
dict()
),但您将无法使用零或-1对其进行索引,除非您取出值或键并将其转换为列表:

from collections import OrderedDict

d = {1:('RYAN',25),2:('WILL',12),3:('JOHN',1),4:('MATT',15),5:('FILL',19),6:('NICK',4)}

od = OrderedDict(sorted(d.values(), key = lambda x: x[1]))

od.keys()
# odict_keys(['JOHN', 'NICK', 'WILL', 'MATT', 'FILL', 'RYAN'])

谈论字典的
索引没有多大意义。如果你想要一个索引,你应该列一个列表。您可以列出
值()
,并使用键对其进行排序。例如:

d = {1:('RYAN',25),2:('WILL',12),3:('JOHN',1),4:('MATT',15),5:('FILL',19),6:('NICK',4)}

list(sorted(d.values(), key = lambda x: x[1]))
结果:

[('JOHN', 1),
 ('NICK', 4),
 ('WILL', 12),
 ('MATT', 15),
 ('FILL', 19),
 ('RYAN', 25)]
如果您确实需要dict,可以将此列表传递回
orderedict()
(或者在保留顺序的较新版本的python中传递回
dict()
),但您将无法使用零或-1对其进行索引,除非您取出值或键并将其转换为列表:

from collections import OrderedDict

d = {1:('RYAN',25),2:('WILL',12),3:('JOHN',1),4:('MATT',15),5:('FILL',19),6:('NICK',4)}

od = OrderedDict(sorted(d.values(), key = lambda x: x[1]))

od.keys()
# odict_keys(['JOHN', 'NICK', 'WILL', 'MATT', 'FILL', 'RYAN'])

这回答了你的问题吗?我可能误解了“字典分类”部分。看看这个:这能回答你的问题吗?我可能误解了“字典分类”部分。请看以下内容: