详解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入门篇之数字
Oct 20 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
Django实现自定义404,500页面教程
Mar 26 Python
Python之list对应元素求和的方法
Jun 28 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
opencv与numpy的图像基本操作
Mar 08 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
May 09 Python
python 实现压缩和解压缩的示例
Sep 22 Python
Django自带的用户验证系统实现
Dec 18 Python
python math模块的基本使用教程
Jan 16 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
人大复印资料处理程序_输入篇
2006/10/09 PHP
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
jquery层次选择器的介绍
2019/01/18 jQuery
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Windows下为Python安装Matplotlib模块
2015/11/06 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
一份软件工程师的面试试题
2016/02/01 面试题
助人为乐模范事迹材料
2014/06/02 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL
关于Redis的主从复制及哨兵问题
2022/06/16 Redis