如何对字典进行排序? [复制]
Posted
技术标签:
【中文标题】如何对字典进行排序? [复制]【英文标题】:How to sort dict? [duplicate] 【发布时间】:2013-06-09 19:00:41 【问题描述】:我有这样结构的字典:
my_dict[object_1] = 'alfa': '1', 'beta': '2', 'etc': '3'
my_dict[object_2] = 'alfa': '5', 'beta': '9', 'etc': '1'
my_dict[object_3] = 'alfa': '7', 'beta': '3', 'etc': '3'
my_dict[object_4] = 'alfa': '3', 'beta': 'a', 'etc': '2'
我想对键“alfa”进行排序,我想得到这个:
my_dict[object_1] = 'alfa': '1', 'beta': '2', 'etc': '3'
my_dict[object_4] = 'alfa': '3', 'beta': 'a', 'etc': '2'
my_dict[object_2] = 'alfa': '5', 'beta': '9', 'etc': '1'
my_dict[object_3] = 'alfa': '7', 'beta': '3', 'etc': '3'
怎么做?
【问题讨论】:
@TheNewIdiot 好听的名字 ;) 【参考方案1】:您可以遍历字典的排序项
只要items()
返回具有键值的元组列表,就可以先获取它,然后对其进行排序。
>>> a = 1: 'alfa': '1', 'beta': '2', 'etc': '3',
2: 'alfa': '5', 'beta': '9', 'etc': '1',
3: 'alfa': '7', 'beta': '3', 'etc': '3',
4: 'alfa': '3', 'beta': 'a', 'etc': '2'
>>> for k,v in sorted(a.items(), key=lambda x: x[1]['alfa']):
print (k, v)
(1, 'etc': '3', 'beta': '2', 'alfa': '1')
(4, 'etc': '2', 'beta': 'a', 'alfa': '3')
(2, 'etc': '1', 'beta': '9', 'alfa': '5')
(3, 'etc': '3', 'beta': '3', 'alfa': '7')
【讨论】:
以上是关于如何对字典进行排序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章