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的结果呢?

【python深入】dict和list实现排序:sorted()和lambda的使用的更多相关文章

  1. python 字典(dict)按键和值排序

    python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行: 1 下面的是按照value的值从大到小的顺序来排序 ...

  2. python3排序 sorted(key=lambda)--实现对字典按value值排序

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

  3. python3排序 sorted(key=lambda)

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

  4. python排序 sorted()与list.sort() (转)

    该文章为转载:原文地址为:https://www.cnblogs.com/zuizui1204/p/6422939.html 只要是可迭代对象都可以用sorted . sorted(itrearble ...

  5. python排序sorted与sort比较

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. sorted(iterable,key=None,revers ...

  6. python排序sorted与sort比较 (转)

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. sorted(iterable,key=None,revers ...

  7. Python中dict详解

    from:http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html Python中dict详解 python3.0以上,pr ...

  8. python sort dict 总结

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

  9. python的dict,set,list,tuple应用详解

    python的dict,set,list,tuple应用详解 本文深入剖析了python中dict,set,list,tuple应用及对应示例,有助于读者对其概念及原理的掌握.具体如下: 1.字典(d ...

随机推荐

  1. 解决yii2 禁用layout时AppAsset不加载资源的问题

    大王派我来巡山_site:http://blog.csdn.net/wang78699425/article/details/52369841 最近由于项目(yii2 的一个项目)需要,登录页面不需要 ...

  2. ex_BSGS

    //author Eterna #define Hello the_cruel_world! #pragma GCC optimize(2) #include<iostream> #inc ...

  3. LG1337 [JSOI2004]平衡点 / 吊打XXX

    题意 题目描述 如图:有n个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.图中X处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不 ...

  4. Nginx调试入门

    1.查看nginx.conf配置文件是否有错误 ./nginx -t -c ./nginx.conf   #可以看到,正常情况下语法没问题,配置文件测试成功了,-t测试-c配置文件 如果我故意加入错误 ...

  5. java_免费视频课程汇总

    xml使用场景    各种配置文件    用于用户界面的开发    传输数据:ajax 这个可能过时,因为程序员更喜欢将xml用json来代替    web service:这些老式的web serv ...

  6. 虚拟机安装及配置(centOs7)

    准备工作 a)下载VMware workstation14 b)下载CentOS7 CentOS7 c)下载xshell.xftp 安装参考 分区设置 补充(解决网络IP问题,设置IP,service ...

  7. Day 13 可迭代对象,迭代器对象,for循环迭代,生成器对象,枚举对象

    一.迭代器概念:# 器:包含了多个值的容器# 迭代:循环反馈(一次从容器中取出一个值)# 迭代器:从装有多个值的容器中一次取出一个值给外界# ls = 'abcdef'ls = [1, 2, 3, 4 ...

  8. ClassNotFoundException与NoClassDefFoundError异常

    方法 loadClass()抛出的是 java.lang.ClassNotFoundException异常(一般是jar冲突或者没有引入jar):方法 defineClass()抛出的是 java.l ...

  9. 原生js创建模态框(摘自:东窗凝残月 链接:https://www.cnblogs.com/dcncy/p/9076937.html)

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Te ...

  10. 5、在Dreamweaver cc 2017中添加服务器扩展组件

    Adobe DW CC 2015对HTML5.CSS3.jQuery.jQuery UI都有很好的支持,无奈这个版本却未提供开发动态网站所需要的服务器行为面板.数据库面板以及绑定面板等.要添加这个面板 ...