lambda dict sort
想把dic的value按照从大到小排序(value都是整数)。
写法如下:sorted(dic.iteritems(), key=lambda d:d[1], reverse = False )
呵呵,看了是不是觉得有点晕?没关系。慢慢来。
先看lambda函数是什么意思?
>>> f=lambda x:x+1
>>> f(2)
3
很简单了,x是参数,x+1是函数返回值。
那dic.iteritems()是什么?在sorted函数里又是怎么和lambda发生关系的呢?看我的调试代码:
... print i[0], i //i[0]第一个字符
<dictionary-itemiterator object at 0xb7ed1464> //返回一个对象
<type 'dictionary-itemiterator'>
[('33', 56), ('a', 31), ('b', 5), ('c', 3), ('d', 0)]
>>> print sorted(dic.iteritems(), key=lambda a:a[1])
[('d', 0), ('c', 3), ('b', 5), ('a', 31), ('33', 56)]
[('33', 56), ('a', 31), ('b', 5), ('c', 3), ('d', 0)]
dic.iteritems() //返回一个元祖(tuple), 每个元祖包含的是一对(key,value)
key=lambda a:a[0] //key是sorted函数的参数
//lambda a:a[0]是什么? 我们把lambda sss:sss[0]结果还是一样的,他只是前面传递过来的参数,名称是无所谓的
sorted(dic.iteritems(), key=lambda d:d[1], reverse = False )
全部的意思就是把dic.iteritems()里的元祖传进来,但是我们只要其中的value,也就是d[1] (d[0]就是key), 所以key=lambda d:d[1]就是按照value来进行排序。
如果想按照key来进行排序只要key=lambda d:d[0]就可以了, reverse = False(True) 是指是否打开反方向排序
lambda dict sort相关推荐
- Java List 排序 :Lambda表达式sort排序
前言 java 1.8+ Lambda表达式sort排序 // 获取一组Book实例 List<Book> bookList = ...;// 按Book的出版日期正序排序(ASC) Li ...
- python lambda函数两个列表大小关系_python学习 -- operator.itemgetter(), list.sort/sorted 以及lambda函数...
Python 中有非常方便高效的排序函数,下面主要介绍如何sort/sorted对list,dict进行排序. 1. 用list.sort /sorted 对list of tuples中第二个值进行 ...
- python sort 部分元素_Python 犄角旮旯--List
列表的构建 List 是 Python 中最常用的容器之一,它是一个可变(mutable)容器,也就是说 List 的内容可以被修改,这也意味着它不能作为 Dict 的 key,也不能出现在 set ...
- jdk8新特性 lambda表达式详解
本文主要讲到的内容有: 一- 前言 二- 背景 三- lambda表达式的语法 四- Lambda程序例子 4-1 Runnable Lambda 4-2 Comparator Lambda 4-3 ...
- Java 8 - Lambda从兴趣盎然到索然无味
文章目录 Pre 常见的内置函数式接口 函数型接口 消费型接口 供给型接口 断言型接口 基本用法 无参 1个参数 多个参数 方法引用 引用静态方法 引用对象的方法 引用类的方法 引用构造方法 Pre ...
- 快用一用 lambda 表达式吧,让你的代码更简洁、更漂亮!
目录 lambda 表达式 定义 lambda 表达式 捕获子句 按值捕获 按引用捕获 捕获特定的变量 捕获this指针 结合 lambda 使用 STL 算法 lambda 表达式 lambda 表 ...
- 【Java】反射、枚举、Lambda表达式
一.反射 1 定义 2 用途(了解) 3 反射基本信息 4 反射相关的类(重要) 4.1 Class类(反射机制的起源 ) 4.1.1 Class类中的相关方法(方法的使用方法在后边的示例当中) 4. ...
- B00012 C++算法库的sort()函数
这个程序介绍了sort()函数个各种用法. 源程序来自:std::sort - cppreference.com. 程序如下: #include <algorithm> #include ...
- 数据结构 Java数据结构 --- Lambda表达式
文章目录 Lambda表达式 1. Lambda表达式的背景 1.1 Lambda表达式的语法 1.2 函数式接口 2. Lambda表达式的基本使用 2.1 无返回值无参数 2.2 无返回值一个参数 ...
最新文章
- 函数的渐近的界阶的比较
- TOP10全球ICT技术发展趋势
- 最好机器学习NLP和python教程
- MySQL安装、基本账户安全(5.0以后版本)
- matplotlib 笔记:设置x轴 y轴文字
- C++开发中类的定制
- java ant与maven_如何在maven中使用ant
- linux yum php环境,centos下yum搭建安装linux+apache+mysql+php环境教程
- flash和html5
- php显示网卡信息,netwox显示网络配置信息
- 用VC写Assembly代码(7)--在Visual C++中使用内联汇编
- QSettings生成以及解析配置文件
- 无人机怎么设定航线_无人机工地巡逻方案
- 【Qt串口调试助手】1.3 - 重写ComboBox下拉框的鼠标点击事件,实现点击下拉框扫描可用串口
- 从零基础入门Tensorflow2.0 ----八、39.2. gpu2
- excel使用教程_【免费】人人入手的办公软件(excel,ppt,word)——安装包/教程/模板合集...
- Android实战开发小米主题下载工具
- 手机喇叭积灰,一段音波就能清理干净
- 视频教程-思科CCNP专题系列②:EIGRP路由协议-思科认证
- 多径信道误码率理论仿真
热门文章
- Leetcode 109. 有序链表转换二叉搜索树 解题思路及C++实现
- 浪漫的html表白源代码_Love:程序猿的方式【情人节amp;520—我爱你】动画加音效 → 那些年最浪漫的表白(帮你得到你的她)...
- 标签页使用及bug解决
- 通过gps给定的两个经纬度坐标,计算两点之间的距离
- vue项目设置img标签的默认图片
- GD32F207移植FreeRtos,程序运行vTaskStartScheduler后进入HardFault_Handler死循环解决方法
- 按键控制LED实现启动、停止按钮
- 嵌入式 Jlink中flash.csv和*.jflash文件分析
- 对序列连续计算平均数和方差
- [YTU]_2718 (求最高同学位置)