我有这样的结构:
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'}
怎么做?
答案 0 :(得分:5)
您可以迭代已排序的字典项
只要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'})