Python: sort list of dictionaries based on values where keys have different names
本问题已经有最佳答案,请猛点这里访问。
我有一个字典列表,如下所示:
1 2 3 4 5 | my_list = [ {'1200' : [10, 'A']}, {'1000' : [24, 'C']}, {'9564' : [6, 'D']}, ] |
我想根据每个字典值的第一个元素对其进行排序,这是一个列表,所以排序后的列表如下所示:
1 2 3 4 5 | my_list_sorted = [ {'9564' : [6, 'D']}, {'1200' : [10, 'A']}, {'1000' : [24, 'C']}, ] |
正如您所看到的,这些键有不同的名称,这就是为什么我不能使用StackOverflow上发布的其他答案的原因。
谢谢
更新:列表中的所有词典都有一个键值对
1 2 | sorted(my_list,key=lambda x: list(x.values())[0][0]) Out[114]: [{'9564': [6, 'D']}, {'1200': [10, 'A']}, {'1000': [24, 'C']}] |
您可以使用
1 | sorted(my_list, key=lambda x: x.values()[0][0]) |
输出:
1 2 3 4 5 | [ {'9564': [6, 'D']}, {'1200': [10, 'A']}, {'1000': [24, 'C']} ] |
这假定每个条目包含一个至少包含一个元素的列表。
为python 3编辑
作为@ C????S?????指出,
1 | sorted(my_list, key=lambda x: list(x.values()[0])[0]) |