详解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模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
深入浅析Python的类
Jun 22 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Python编写打字训练小程序
Sep 26 Python
Python 获取项目根路径的代码
Sep 27 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
Python加密技术之RSA加密解密的实现
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
php curl 伪造IP来源的实例代码
2012/11/01 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
简述JS控制台的使用
2018/07/15 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
Python解释执行原理分析
2014/08/22 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
Python中整数的缓存机制讲解
2019/02/16 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
Java面试笔试题大全
2016/11/23 面试题
新闻编辑自荐信
2013/11/03 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
社团活动总结范文
2014/04/26 职场文书
签约仪式策划方案
2014/06/02 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
精神病医院见习报告
2014/11/03 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
vue实现简单数据双向绑定
2021/04/28 Vue.js
Golang 实现WebSockets
2022/04/24 Golang
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript