python字典结构排序以及取前几项
字典数据结构
下面是我需要处理的字典数据结构
{
'一家': 0.026705843302086574, '三口': 0.03863159743158114, '搬家': 0.10736427147319758, '新家': 0.08690615802706024, '得来': 0.054637067219615684, '买来': 0.04612577908469612,..........,'新房子': 0.038974785884171845, '搬进': 0.09108143118667884}
字典转list结构并排序
按照第二个字段,也就是数值那个进行排序。
list = sorted(dict.items(), key=lambda d: d[1], reverse=True)
这里dict就是保存上文的数据。
dict.items() 为待排序的list;
key=lambdad: d[1] 为输入d,对前面的d中的第二维数据的值进行排序。
处理出来的数据如下面所示:
[('东西', 0.13536804201443886), ('收拾', 0.11559750288801565), ('搬家', 0.10736427147319758),..........., ('小东西', 0.0947239858845381), ('坟', 0.0929545414763724)]
这个是后数据已经转换成有序的List结构了,后面取数据就好取了。
获取前10项
这里是个笨方法~遍历取出前10项,这样如果数据没有10项,也不会报错的。
new_list = []
num = 10
for item in list:
if num == 0:
break
else:
new_list.append(item)
num = num - 1
网传还有通过list.sublist(end,start),我试了一下,报错。找不到sublist方法,我也不知道哪有问题,索性就用了上面的方法。
欢迎大佬批评指正!