详解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 random模块(获取随机数)常用方法和使用例子
May 13 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
Nov 07 Python
Python调用命令行进度条的方法
May 05 Python
python matplotlib 在指定的两个点之间连线方法
May 25 Python
Python常用特殊方法实例总结
Mar 22 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 Python
Django xadmin开启搜索功能的实现
Nov 15 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
Dec 21 Python
用基于python的appium爬取b站直播消费记录
Apr 17 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
php创建基本身份认证站点的方法详解
2013/06/08 PHP
浅析51个PHP处理字符串的函数
2013/08/02 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
Angular 应用技巧总结
2016/09/14 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
使用python绘制常用的图表
2016/08/27 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
django如何自己创建一个中间件
2019/07/24 Python
基于Python实现简单学生管理系统
2020/07/24 Python
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
网络技术专业推荐信
2014/02/20 职场文书
个人租房协议书
2014/04/09 职场文书
小学教师培训方案
2014/06/09 职场文书
2015年学校减负工作总结
2015/05/19 职场文书