详解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网络编程学习笔记(一)
Jun 09 Python
python私有属性和方法实例分析
Jan 15 Python
Python编写Windows Service服务程序
Jan 04 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
判断python对象是否可调用的三种方式及其区别详解
Jan 31 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
Jun 11 Python
python中dict使用方法详解
Jul 17 Python
用Pelican搭建一个极简静态博客系统过程解析
Aug 22 Python
python通过实例讲解反射机制
Oct 17 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
python办公自动化之excel的操作
May 23 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
ThinkPHP分页实例
2014/10/15 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
Python读csv文件去掉一列后再写入新的文件实例
2017/12/28 Python
Python中常用信号signal类型实例
2018/01/25 Python
django中模板的html自动转意方法
2018/05/27 Python
python tornado微信开发入门代码
2018/08/24 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
使用python实现kNN分类算法
2019/10/16 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
Java软件工程师综合面试题笔试题
2013/09/08 面试题
电子商务专业应届毕业生求职信
2014/06/21 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server