zoukankan      html  css  js  c++  java
  • python3排序 sorted(key=lambda)--实现对字典按value值排序

    使用python对列表(list)进行排序,说简单也简单,说复杂也复杂,我一开始学的时候也搞不懂在说什么,只能搜索一些英文文章看看讲解,现在积累了一些经验,写在这里跟大家分享,

    1.sorted函数
    首先介绍sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数。

    其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等,key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序(从大到小),reverse=false则是顺序(从小到大),默认是reverse=false。

    2.按照key排序
    要对字典按照key排序,可以直接调用sorted函数。

    my_dict = {'lilee':25, 'age':24, 'phone':12}
    sorted(my_dict.keys())
    输出结果为
    
    ['age', 'lilee', 'phone']

    直接使用sorted(my_dict.keys())就能按key值对字典排序,这里是按照顺序对key值进行排序的,如果想按照倒序排序的话,只需要将reverse置为true即可。

    sorted(my_dcit.keys(), reverse = true)

    3.按照value值排序
    共有三种方法可以实现将字典按照value值进行排序

    (1)key使用lambda匿名函数取value进行排序

    复制代码
    d = {'lilee':25, 'wangyan':21, 'liqun':32, 'age':19}
    sorted(d.items(), key=lambda item:item[1])
    输出结果为
    
    [('age',19),('wangyan',21),('lilee',25),('liqun',32)]
    如果需要倒序则
    
    sorted(d.items(), key=lambda item:item[1], reverse=True)
    得到的结果就会是
    
    [('liqun',32),('lilee',25),('wangyan',21),('age',19)]
    复制代码

    (2)将key和value分装成元组,再进行排序

    f = zip(d.keys(), d.values())
    c = sorted(f)
    输出结果为
    
    [('age',19),('wangyan',21),('lilee',25),('liqun',32)]

    我们通过例子来详细解释一下函数sorted的具体用法:

    1. 先创建一个列表a                                                                                                                                                       

    2.               

    3. 直接使用sorted方法,返回一个列表就是排序好的                                                                                                             

    4.                                                                                                                                              

    5. 假如a是一个由元组构成的列表,这时候就麻烦了,我们需要用到参数key,也就是关键词,看下面这句命令,lambda是一个隐函数,是固定写法,不要写成别的单词;x表示列表中的一个元素,在这里,表示一个元组,x只是临时起的一个名字,你可以使用任意的名字;x[0]表示元组里的第一个元素,当然第二个元素就是x[1];所以这句命令的意思就是按照列表中第一个元素排序    。a是一个dict ,同                                                         

    6.             

    7. 按照第二个元素排序:                                                                                               

    8.      

    9. 我们还可以使用reverse参数实现倒序排列                                                                                                   

    10.      

    11.  python3 取消了cmp 参数,可以用functools.cmp_to_key 代替   参考:https://www.zhihu.com/question/30389643?sort=created

     
     
     
  • 相关阅读:
    HTML5简介
    PHP
    纯CSS3写的10个不同的酷炫图片遮罩层效果
    零基础如何自学MySQL数据库?
    js与jQuery
    MAC下GitHub命令操作
    框架基础:ajax设计方案(二)---集成轮询技术
    框架基础:ajax设计方案(一)---集成核心请求
    框架基础:ajax设计方案(三)---集成ajax上传技术
    Jquery操作下拉列表和复选框,自定义下拉
  • 原文地址:https://www.cnblogs.com/xyao1/p/11022127.html
Copyright © 2011-2022 走看看