python key lambda_使用“key”和lambda表达式的python max函数
lambda是一个匿名函数,它等价于:def func(p):
return p.totalScore
现在max变成:max(players, key=func)
但是由于def语句是复合语句,因此不能在需要表达式的地方使用它们,这就是为什么有时使用lambda语句的原因。
注意lambda相当于您在def的返回语句中放入的内容。因此,不能在lambda中使用语句,只允许使用表达式。
做什么max?max(a, b, c, ...[, key=func]) -> value
With a single iterable argument, return its largest item. With two or
more arguments, return the largest argument.
所以,它只返回最大的对象。
如何工作?
在Python 2中,默认情况下key基于对象类型(例如字符串总是大于整数)比较基于set of rules的项。
要在比较之前修改对象,或者基于特定的属性/索引进行比较,必须使用key参数。
例1:
一个简单的例子,假设你有一个字符串形式的数字列表,但是你想用它们的整数值来比较它们。>>> lis = ['1', '100', '111', '2']
这里max使用项目的原始值比较项目(字符串按字典顺序比较,以便获得'2'作为输出):>>> max(lis)
'2'
要按整数值比较项,请使用key和简单的lambda:>>> max(lis, key=lambda x:int(x)) # compare `int` version of each item
'111'
示例2:将max应用于元组列表。>>> lis = [(1,'a'), (3,'c'), (4,'e'), (-1,'z')]
默认情况下,max将按第一个索引比较项。如果第一个索引相同,那么它将比较第二个索引。在我的示例中,所有项都有一个唯一的第一个索引,因此您将得到以下答案:>>> max(lis)
(4, 'e')
但是,如果你想用索引1的值来比较每一项呢?简单:使用lambda:>>> max(lis, key = lambda x: x[1])
(-1, 'z')
比较包含不同类型对象的iterable中的项:
包含混合项的列表:lis = ['1','100','111','2', 2, 2.57]>>> max(lis) # works in Python 2
'2'
>>> max(lis, key=lambda x: int(x)) # compare integer version of each item
'111'>>> lis = ['1', '100', '111', '2', 2, 2.57]
>>> max(lis)
Traceback (most recent call last):
File "", line 1, in
max(lis)
TypeError: unorderable types: int() > str()
但这是可行的,因为我们正在比较每个对象的整数版本:>>> max(lis, key=lambda x: int(x)) # or simply `max(lis, key=int)`
'111'
python key lambda_使用“key”和lambda表达式的python max函数相关推荐
- python使用函数的优点-Lambda表达式在Python中的优点和缺点
学过python的人,相信都接触过Lambda表达式.本文就来谈谈Lambda表达式在Python中的优点和缺点.一方面,Lambda函数的减少了代码的行数,方便又简洁.另一方面,Lambda表达式有 ...
- Kotlin学习笔记23 协程part3 lambda表达式深入 挂起函数 全局协程
参考链接 示例来自bilibili Kotlin语言深入解析 张龙老师的视频 1 lambda表达式深入 /*** lambda 表达式深入* 当函数参数是函数时 并且该函数只有一个参数 可以不传入任 ...
- 【Kotlin】Kotlin 函数总结 ( 具名函数 | 匿名函数 | Lambda 表达式 | 闭包 | 内联函数 | 函数引用 )
文章目录 一.函数头声明 二.函数参数 1.默认参数值 2.具名参数 三.Unit 函数 四.TODO 函数抛出异常返回 Nothing 类型 五.反引号函数名 六.匿名函数 七.匿名函数的函数类型 ...
- python max函数_使用'key'和lambda表达式的python max函数
小编典典 lambda是一个匿名函数,它等效于: def func(p): return p.totalScore 现在max变成: max(players, key=func) 但是由于def语句是 ...
- python key=lambda函数_使用’key’和lambda表达式的python max函数
我来自OOP背景,尝试学习Python.我使用的是max函数,该函数使用lambda表达式返回Player类型的实例,其中players列表中的totalScore最大. def winner(): ...
- Python学习 Day8-2 python的三元表达式(三目运算符)、lambda表达式、内置函数
Python中的三元表达式(三目运算符) 语法:为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号) >>print(1 if 5 > 3 else 0) 1 Py ...
- python lambda 逻辑_Python之lambda表达式和内置函数
lambda表达式其实就是简化的函数表达式. 它只用于处理简单逻辑, 它会自动return数据 通常定义一个函数,按照以下形式:def func(arg): return arg +1 result ...
- Python之lambda表达式和内置函数
lambda表达式其实就是简化的函数表达式. 它只用于处理简单逻辑, 它会自动return数据 通常定义一个函数,按照以下形式: 1 2 3 4 5 def func(arg): ret ...
- python 用lambda表达式代替简单的函数, 匿名函数
当一些函数很简单,仅仅只是计算一个表达式的值的时候,就可以使用lambda表达式来代替了. 比如: >>> add = lambda x,,y : x + y >>> ...
- php有lambda表达式吗,Python中lambda表达式的简单介绍(附示例)
本篇文章给大家带来的内容是关于Python中lambda表达式的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一:匿名函数的定义 lambda parameter ...
最新文章
- FPGA之道(53)状态机的模型
- vue-router基本使用
- leetcode刷题实录:1
- python如何使用session和cookie_Python爬虫番外篇之Cookie和Session-阿里云开发者社区
- 车辆姿态相关的传感器概述
- 吴恩达《机器学习》学习笔记十——神经网络相关(2)
- 微型计算机最怕的是什么,为什么以前学生上“微机课”都要穿鞋套?老师:怕电脑中病毒...
- 36 万美元套利!3 步骤揭秘黑客 DeFi 闪电贷全过程
- mysql数据库优化总结 有图 有用
- Android开发小结Part2:目录
- 化学堵水剂处理油井出水问题
- 18-一种准确高效的领域知识图谱构建方法
- c语言读取三菱plc数据,c#通过网线读取三菱PLC数据
- c语言链表详解(超详细)
- Win8.1系统System.exe进程占用磁盘率高达100%如何解决
- idea 无法找到要转到的声明
- 关于t-SNE(T-distributed Stochastic Neighbor Embedding) t-分布随机近邻嵌入的简单理解
- iphone充电图_哪些iPhone具有无线充电功能?
- 计算机技术在法学方面的应用,现代计算机技术为法学带来了什么-西安交通大学教师个人主页.PDF...
- 记一次服务器被植入木马/病毒:kdevtmpfsi
热门文章
- matlab操作入门实验报告,matlab操作实验报告
- java stop和int,JAVA并发任务中止的isinterrupted,interupted()
- java application作用域_servlet三大作用域:request,session,application
- postgresql测试题_PostgreSQL练习
- config kubectl_kubectl常用命令归档及pod诊断工具安装
- 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
- Python | 新手必会的 9 个 Python 技巧
- 说说每月至少一次的那点事,文末有彩蛋!
- 我关注了389个公众号,这10个牛XXX的推荐给你!
- 手机经常提示找不到服务器,为什么我的手机显示无法连接到服务器