详解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 相关文章推荐
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
python 实现矩阵上下/左右翻转,转置的示例
Jan 23 Python
Python面向对象之类和实例用法分析
Jun 08 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
Jun 08 Python
python logging模块的使用总结
Jul 09 Python
Pytorch evaluation每次运行结果不同的解决
Jan 02 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
浅谈Python中的生成器和迭代器
Jun 19 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
第十二节--类的自动加载
2006/11/16 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
Python中logger日志模块详解
2020/08/04 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
毕业证丢失证明
2014/01/15 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
国贸专业求职信
2014/06/28 职场文书
会计稽核岗位职责
2015/04/13 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
浅谈如何提高PHP代码的质量
2021/05/28 PHP
Go 语言结构实例分析
2021/07/04 Golang
Python简易开发之制作计算器
2022/04/28 Python