详解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字符串和字典
Jul 07 Python
Python简单遍历字典及删除元素的方法
Sep 18 Python
python解析基于xml格式的日志文件
Feb 25 Python
python执行使用shell命令方法分享
Nov 08 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
对Python中gensim库word2vec的使用详解
May 08 Python
在python中以相同顺序shuffle两个list的方法
Dec 13 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
Python中shapefile转换geojson的示例
Jan 03 Python
python读写csv文件实例代码
Jul 05 Python
Python从文件中读取数据的方法步骤
Nov 18 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python实现异步回调机制代码分享
2014/01/10 Python
Python实现的购物车功能示例
2018/02/11 Python
python实现决策树分类
2018/08/30 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
父母对孩子的寄语
2014/04/09 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
先进班组材料范文
2014/12/25 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis