[英]How to sort a dict by one of its values in Python?
我有一个这样的字典:键是一个字符串,值是一个字符串列表
my_dict = {
'key1': [value11, value12, value13],
'key2': [value21, value22, value23],
'key3': [value31, value32, value33],
'key4': [value41, value42, value43]
}
例如
dict_0 = {
'key1' : [lv, 2, abc],
'key2' : [ab, 4, abc],
'key3' : [xj, 1, abc],
'key4' : [om, 3, abc],
}
我想根据值列表中的第二个值进行排序,因此应该像这样:
dict_0 = {
'key3' : [xj, 1, abc],
'key1' : [lv, 2, abc],
'key4' : [om, 3, abc],
'key2' : [ab, 4, abc],
}
我想按值列表中的值之一(即value * 2)对这个字典进行排序,我该怎么做? 我在该网站上进行了广泛搜索,但没有找到类似的案例。
谢谢。
字典不是有序的数据结构,如果要排序,可以使用collections
模块中的OrderedDict()
函数。
>>> dict_0 = {
... 'key1' : ['lv', 2, 'abc'],
... 'key2' : ['ab', 4, 'abc'],
... 'key3' : ['xj', 1, 'abc'],
... 'key4' : ['om', 3, 'abc'],
... }
>>> from collections import OrderedDict
>>> OrderedDict(sorted(dict_0.items(), key=lambda x: x[1][1]))
OrderedDict([('key3', ['xj', 1, 'abc']),
('key1', ['lv', 2, 'abc']),
('key4', ['om', 3, 'abc']),
('key2', ['ab', 4, 'abc'])])
>>>
您可以使用:
sorted(d.items(), key=lambda x: x[1])
这将按照字典中每个条目的值(从最小到最大)对字典进行排序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.