zoukankan      html  css  js  c++  java
  • 【python深入】dict和list实现排序:sorted()和lambda的使用

    Python中经常需要对dict中的key值或者value值进行排序,可以通过sorted方法和lambda结合使用,接下来就是sorted()和lambda

    一、sorted()和lambda

    sorted()函数原型:

    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

    我们可以看到:一共接受的参数有4个,

    需要排序的变量为iterable变量;

    cmp,比较的函数,具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0

    key,就是用来进行比较的元素,这个元素就是来源于可迭代对象中,指定可迭代对象中的一个元素进行排序

    reverse,代表是否逆序,默认情况下是正序

    lambda:

    匿名函数,用法是:lambda [arguments]: expression

    这个用法转换成函数形式就是:

    def lambda(arguments):

             return expression

    二、list和dict排序

    接下来是一堆例子,关于对list和dict进行排序的实例,结合这些更深入的理解sorted()和lambda

    1、  list排序

    然后是嵌套的list,会用到key参数

     

    2、  dict排序

    按照key值进行排序:

     

    按照value值进行排序:

     

    注意按照value值进行排序的正确方式是,sorted()方法的第一个参数是需要排序的变量,而对于dict而言,默认输入dict的变量名,key中的lambda中的k就是key,并没有value,因此会报出index out of range的错误,因此可以按照下面的方式执行,这样就可以得到dict中的key和value排序后的list,并且key和value依然是配对的情况

     

    如果我只是想要对value进行排序并且只输出value的结果呢?

            

            

  • 相关阅读:
    Linux知识(4)----文件系统结构
    ROS知识(4)----初级教程之常见问题汇总
    Linux知识(3)----常用快捷键和命令
    ROS知识(1)----ROS Jade安装
    Linux知识(1)----U盘安装Ubantu14.04系统
    Linux知识(2)----中文输入法安装
    EM(Expectation Maximization)算法
    idea xml 绿背景色 去掉拼写检查
    Java transient
    java代码中获取classpath路径
  • 原文地址:https://www.cnblogs.com/keke-xiaoxiami/p/8546930.html
Copyright © 2011-2022 走看看