簡體   English   中英

如何用python中的值之一對字典進行排序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM