详解python中的lambda与sorted函数


Posted in Python onSeptember 04, 2020

lambda表达式

python中形如:

lambda parameters: expression

称为lambda表达式,用于创建匿名函数,该表达式会产生一个函数对象。

该对象的行为类似于用以下方式定义的函数:

def <lambda>(parameters):
	return expression

python中的lambda函数可以接受任意数量的参数,但只能有一个表达式。也就是说,lambda表达式适用于表示内部仅包含1行表达式的函数。那么lambda表达式的优势就很明显了:

  1. 使用lambda表达式可以省去单行函数的定义过程,使代码更加简洁;
  2. 适用于不需要多次复用的函数

例:

y = lambda x: x*x
print(y(3))
> 9
fx = lambda x, y, z: x+y+z
print(fx(3, 4, 5))
> 12

sorted()

python3.x中sorted函数:

sorted(iterable, *, key=None, reverse=False)

sorted函数会根据iterable中的项返回一个新的已排序列表。

其中keyreverse是两个可选参数,它们都必须指定为关键字参数;

key:指定带有单个参数的函数,用于从iterable的每个元素中提取用于比较的键,默认为None,即直接比较元素;

reverse:为一个布尔值,用来指定排序规则,默认为False(升序)。

python2的sorted函数中还有一个参数cmp,python3的sorted中已经没有这个参数了。

与list.sort()方法不同的是,sorted()是有返回值的,而list.sort()的返回值为None;并且list.sort()只能对list进行排序,而sorted()可以接收任何的iterable

例:

# list
foo = [5, 7, 2, 9, 1]
bzz = sorted(foo)
print(bzz)
# > [1, 2, 5, 7, 9]

print(sorted(foo))
# > [1, 2, 5, 7, 9]

print(sorted(foo, reverse = True))
# > [9, 7, 5, 2, 1]

print(sorted(foo, key = lambda x: x*-1))
# > [9, 7, 5, 2, 1]

# dict
bar = {'java': 14, 'c': 16, 'python': 9, 'cpp': 6, 'csharp': 4}
print(sorted(bar))
# > ['c', 'cpp', 'csharp', 'java', 'python']

print(sorted(bar.items(), key = lambda kv: kv[1], reverse = True))
# > [('c', 16), ('java', 14), ('python', 9), ('cpp', 6), ('csharp', 4)]

以上就是详解python中的lambda与sorted函数的详细内容,更多关于python lambda与sorted函数的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中的各种装饰器详解
Apr 11 Python
python3 pillow生成简单验证码图片的示例
Sep 19 Python
python写一个md5解密器示例
Feb 23 Python
基于Python列表解析(列表推导式)
Jun 23 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
pytorch使用Variable实现线性回归
May 21 Python
Python generator生成器和yield表达式详解
Aug 08 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
Django REST framework 限流功能的使用
Jun 24 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 Python
如何利用Python动态模拟太阳系运转
Sep 04 #Python
python装饰器三种装饰模式的简单分析
Sep 04 #Python
Django如何实现密码错误报错提醒
Sep 04 #Python
如何使用python socket模块实现简单的文件下载
Sep 04 #Python
python 监控logcat关键字功能
Sep 04 #Python
如何将json数据转换为python数据
Sep 04 #Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
Sep 04 #Python
You might like
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python函数中的可变长参数详解
2019/09/12 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Django nginx配置实现过程详解
2020/09/10 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
施工安全协议书
2013/12/11 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
函授本科个人自我鉴定
2014/03/25 职场文书
购房协议书范本
2014/10/02 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
浅谈JavaScript作用域
2021/12/06 Javascript
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB