我有一个字典列表,如下所示:
my_list = [
{'1200' : [10, 'A']},
{'1000' : [24, 'C']},
{'9564' : [6, 'D']},
]
我希望根据列表中每个词典值的第一个元素对其进行排序,因此排序列表如下所示:
my_list_sorted = [
{'9564' : [6, 'D']},
{'1200' : [10, 'A']},
{'1000' : [24, 'C']},
]
正如您所看到的,键具有不同的名称,这就是为什么我无法使用stackoverflow上发布的其他答案。
由于
更新:列表中的所有词典都有一个键值对
答案 0 :(得分:4)
sorted(my_list,key=lambda x: list(x.values())[0][0])
Out[114]: [{'9564': [6, 'D']}, {'1200': [10, 'A']}, {'1000': [24, 'C']}]
答案 1 :(得分:3)
您可以使用values()
访问dict
元素:
sorted(my_list, key=lambda x: x.values()[0][0])
输出:
[
{'9564': [6, 'D']},
{'1200': [10, 'A']},
{'1000': [24, 'C']}
]
这假设每个条目都包含一个至少包含一个元素的列表。
编辑PYTHON 3
正如@cᴏʟᴅsᴘᴇᴇᴅ所指出的那样,values()
不会在python3中返回一个列表,所以你必须这样做:
sorted(my_list, key=lambda x: list(x.values()[0])[0])