python字典结构排序转化成list以及取前几项

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方法,我也不知道哪有问题,索性就用了上面的方法。


欢迎大佬批评指正!

猜你喜欢

转载自blog.csdn.net/m0_47220500/article/details/105699225
今日推荐