python 字典排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 字典排序相关的知识,希望对你有一定的参考价值。
我有一个字典0: 5, 1: 4, 2: 5, 3: 4, 4: 2, 5: 2, 6: 2, 7: 0, 8: 2, 9: 0, 10: 2, 11: 0, 12: 0, 13: 4, 14: 0, 15: 0, 16: 0, 17: 0, 18: 0, 19: 0, 20: 0, 21: 0, 22: 0, 23: 2, 24: 3, 25: 2, 26: 0, 27: 1, 28: 1, 29: 0, 30: 2, 31: 3, 32: 3, 33: 3
python字典按值降序排序结果是这样的[(0, 5), (2, 5), (1, 4), (3, 4), (13, 4), (24, 3), (31, 3), (32, 3), (33, 3), (4, 2), (5, 2), (6, 2), (8, 2), (10, 2), (23, 2), (25, 2), (30, 2), (27, 1), (28, 1), (7, 0), (9, 0), (11, 0), (12, 0), (14, 0), (15, 0), (16, 0), (17, 0), (18, 0), (19, 0), (20, 0), (21, 0), (22, 0), (26, 0), (29, 0)]
我现在想取前得到的这个列表值的key,比如取前5个就应该是0,2,1,3,13
程序该怎么实现。。?
dict_b=sorted(dict_a.iteritems(),key=lambda d:d[1],reverse=True)
print dict_a
print dict_b
for i in range(5):
print dict_b[i][0]本回答被提问者采纳 参考技术B list1 = [(0, 5), (2, 5), (1, 4), (3, 4), (13, 4), (24, 3), (31, 3), (32, 3), (33, 3), (4, 2), (5, 2), (6, 2),
(8, 2), (10, 2), (23, 2), (25, 2), (30, 2), (27, 1), (28, 1), (7, 0), (9, 0), (11, 0), (12, 0), (14, 0),
(15, 0), (16, 0), (17, 0), (18, 0), (19, 0), (20, 0), (21, 0), (22, 0), (26, 0), (29, 0)]
for i in list1[0:5]:
print i[0]
python中列表排序,字典排序,列表中的字典排序
#-*- encoding=utf-8 -*- import operator #按字典值排序(默认为升序) x = {1:2, 3:4, 4:3, 2:1, 0:0} sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1)) print sorted_x #[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)] #如果要降序排序,可以指定reverse=True sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1), reverse=True) print sorted_x #[(3, 4), (4, 3), (1, 2), (2, 1), (0, 0)] #或者直接使用list的reverse方法将sorted_x顺序反转 #sorted_x.reverse() #取代方法是,用lambda表达式 sorted_x = sorted(x.iteritems(), key=lambda x : x[1]) print sorted_x #[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)] sorted_x = sorted(x.iteritems(), key=lambda x : x[1], reverse=True) print sorted_x #[(3, 4), (4, 3), (1, 2), (2, 1), (0, 0)] #包含字典dict的列表list的排序方法与dict的排序类似,如下: x = [{‘name‘:‘Homer‘, ‘age‘:39}, {‘name‘:‘Bart‘, ‘age‘:10}] sorted_x = sorted(x, key=operator.itemgetter(‘name‘)) print sorted_x #[{‘age‘: 10, ‘name‘: ‘Bart‘}, {‘age‘: 39, ‘name‘: ‘Homer‘}] sorted_x = sorted(x, key=operator.itemgetter(‘name‘), reverse=True) print sorted_x #[{‘age‘: 39, ‘name‘: ‘Homer‘}, {‘age‘: 10, ‘name‘: ‘Bart‘}] sorted_x = sorted(x, key=lambda x : x[‘name‘]) print sorted_x #[{‘age‘: 10, ‘name‘: ‘Bart‘}, {‘age‘: 39, ‘name‘: ‘Homer‘}] sorted_x = sorted(x, key=lambda x : x[‘name‘], reverse=True) print sorted_x #[{‘age‘: 39, ‘name‘: ‘Homer‘}, {‘age‘: 10, ‘name‘: ‘Bart‘}]
以上是关于python 字典排序的主要内容,如果未能解决你的问题,请参考以下文章