• python sort dict 总结


    python中的dict是不能排序的,只有对dict的representation进行排序,例如list或者tuple
    排序肯定会用到sorted函数,那么我们就来讲一下sorted函数。

    sorted

    • sorted(iterable,key,reverse)

    iterable:表示可迭代的对象,例如dict.keys(), dict.items()
    key:是一个函数,用来选择参与排序的元素
    reverse:默认为False,从小到大排序,reverse=True,表示从大到小排序

    按 key 排序

    import operator
    x = {1:2, 5:6, 3:4}
    sorted_x = sorted(x.items(), key=operator.itemgetter(0))
    # sorted_x = sorted(x.items(), key=operator.itemgetter(0), reverse=True)
    

    itemgetter(0)表示取每项的第一个值,也就是键,来参与排序,默认是从小到大排序
    结果 [(1, 2), (3, 4), (5, 6)]

    按 value 排序

    import operator
    x = {1:2, 5:6, 3:4}
    sorted_x = sorted(x.items(), key=operator.itemgetter(1))
    

    itemgetter(1)表示取每项的值来排序
    结果 [(1, 2), (3, 4), (5, 6)]

    按 key 排序

    def sortedDictValues1(adict): 
    	items = adict.items() 
    	items.sort() 
    	return [value for key, value in items] 
    
    def sortedDictValues2(adict): 
    	keys = adict.keys() 
    	keys.sort() 
    	return [dict[key] for key in keys] 
    
    def sortedDictValues3(adict): 
    	keys = adict.keys() 
    	keys.sort() 
    	return map(adict.get, keys) 
    
    #一行语句搞定: 
    [(k,di[k]) for k in sorted(di.keys())] 
    

    按 value 排序

    #还是一行搞定: 
    [ v for v in sorted(di.values())] 
    
  • 相关阅读:
    构造和析构
    const修饰的成员函数
    class和struct权限
    封装加强
    函数重载实现原理
    Unity2019破解hub
    Lua模拟stack
    函数重载
    LeanTween
    占位参数和默认参数
  • 原文地址:https://www.cnblogs.com/zhonghuasong/p/7495249.html
Copyright © 2020-2023  润新知