详解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实用技巧两则
Aug 29 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
5种Python单例模式的实现方式
Jan 14 Python
python对象及面向对象技术详解
Jul 19 Python
python监控文件并且发送告警邮件
Jun 21 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
使用浏览器访问python写的服务器程序
Oct 10 Python
python图形用户接口实例详解
Dec 16 Python
Python实现进度条和时间预估的示例代码
Jun 02 Python
Numpy中np.max的用法及np.maximum区别
Nov 27 Python
python开发的自动化运维工具ansible详解
Aug 07 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
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
又一个图片自动缩小的JS代码
2007/03/10 Javascript
Javascript 事件流和事件绑定
2009/07/16 Javascript
var与Javascript变量隐式声明
2009/09/17 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
JS中的BOM应用
2018/02/02 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
Python help()函数用法详解
2014/03/11 Python
numpy数组拼接简单示例
2017/12/15 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
学习雷锋精神心得体会范文
2014/03/12 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
差生评语大全
2014/05/04 职场文书
违章停车检讨书
2014/10/21 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript
css背景和边框标签实例详解
2021/05/21 HTML / CSS