• 字典排序


     sorted函数默认是按从小到大排序的,如果要从大到小排序,就需要将reverse设置为True。

     字典的值是不具有可迭代性的,只有他的键可迭代,所以可以直接对键进行排序,但不能对值进行排序:

    dic = {'a':3 , 'b':5, 'c': 1}
    a = sorted(dic, reverse=True)
    print a

    或者
    a = sorted(dic.keys(),reverse=True)

    要想对值进行排序,就必须将字典转换乘键值的可迭代,而不仅仅是键的可迭代。所以用iteritems生成一个可迭代的对象

    >>> sorted(dict1.iteritems(), key=lambda A:A[0], reverse=True)        对键排序
    [('Shanghai', 40), ('Guangzhou', 29), ('Beijing', 34)]  
    >>> sorted(dict1.iteritems(), key=lambda A:A[1], reverse=True)        对值排序
    [('Shanghai', 40), ('Beijing', 34), ('Guangzhou', 29)]  

     也可以用items生成

    dic = {'a':3 , 'b':5, 'c': 1}
    a = sorted(dic.items(), key=lambda A:A[0], reverse=True)
    print a

    注意:第一个参数把每个键值对传给key所在的匿名函数,然后经过函数处理生成新的元祖然后再用sorted函数排序。iteritems让字典变为可迭代,然后一个一个传给key,而不是把整个字典传给key,不会像list中[0]表示取第一个元素(因为那是针对lsit整体),这也就是可迭代的意义所在。

  • 相关阅读:
    unity-TextAsset
    unity-热更-InjectFix
    进程和线程的区别
    StringBuffer 和 StringBuilder 的区别
    List、Set、Map 三者区别
    竞态条件是什么?
    多线程安全(synchronized、三大特性、生命周期以及优缺点)
    集合的同步与非同步
    List、Set、Map的了解及区别
    java面试题
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/6555371.html
Copyright © 2020-2023  润新知