zoukankan      html  css  js  c++  java
  • 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())] 
    
  • 相关阅读:
    8086汇编学习小记王爽汇编语言实验12
    8086汇编学习小记王爽汇编语言课程设计1
    activeMQ 持久化配置 kevin
    snmpwalk kevin
    tcp benchmark kevin
    apache camel 条件路由 kevin
    netty 并发访问测试配置 kevin
    snmp常见操作 kevin
    转发:RocketMQ与kafka的对比 kevin
    centos jdk 下载 kevin
  • 原文地址:https://www.cnblogs.com/zhonghuasong/p/7495249.html
Copyright © 2011-2022 走看看