zoukankan      html  css  js  c++  java
  • python对字典及列表递归排序

    对字典内所有内容进行排升序排序,包括,子数组,子字典

    需要注意:

    1.字典因为是在一定程序上无序的,所以这里采用了内置包,来变成有序字典

     

    from collections import OrderedDict

     

     

    实现代码:

     代码中,清除了值为[]的列表,与值为None的项

    def sortDict(pyload):
        item = 'p.items()'
        if type(pyload).__name__=='list':
            p = sorted(pyload)
            item = 'enumerate(p)'
        if type(pyload).__name__ == 'dict':
            p=OrderedDict(sorted(pyload.items(),key=lambda a:a[0]))
    
        for k,v in eval(item):
    
            if type(v).__name__=='list':
                if not v or (v is None):
                    p.pop(k)
                else:
                    p[k]=list(sortDict(sorted(v)))
            elif type(v).__name__=='dict':
                if not v or (v is None):
                    p.pop(k)
                else:
                    p[k] =dict(sortDict(v))
                return p
            else:
                if v is None:
                    p.pop(k)
    
        return p
    
    
    
    listk = {'d':['a',1,4,3,8,2,'b',[4,3,2,1,[9,8,7,6]]],'b':1}
    
    print sortDict(listk)

     

    运行结果:

    D:Python27python.exe D:/untitled4/tmp6.py
    OrderedDict([('b', 1), ('d', [1, 2, 3, 4, 8, [1, 2, 3, 4, [6, 7, 8, 9]], 'a', 'b'])])
    
    Process finished with exit code 0

     

    注意:看着输出里边又是列表,又是元组的有点晕。其实这个你不用管的。直接当字典使用就好。

    如,我要取key为b的值

    OrderedDict('b')

     

  • 相关阅读:
    Filter and Listener
    Cookie Session
    怎样快速将一台电脑虚拟机导入另外一台电脑
    网页下载文件服务端代码
    图片验证码生成代码
    Request实战
    Response
    设置页眉页脚的距离
    页眉页脚的设置
    节的设置
  • 原文地址:https://www.cnblogs.com/yhleng/p/9407895.html
Copyright © 2011-2022 走看看