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函数相关推荐

  1. python使用函数的优点-Lambda表达式在Python中的优点和缺点

    学过python的人,相信都接触过Lambda表达式.本文就来谈谈Lambda表达式在Python中的优点和缺点.一方面,Lambda函数的减少了代码的行数,方便又简洁.另一方面,Lambda表达式有 ...

  2. Kotlin学习笔记23 协程part3 lambda表达式深入 挂起函数 全局协程

    参考链接 示例来自bilibili Kotlin语言深入解析 张龙老师的视频 1 lambda表达式深入 /*** lambda 表达式深入* 当函数参数是函数时 并且该函数只有一个参数 可以不传入任 ...

  3. 【Kotlin】Kotlin 函数总结 ( 具名函数 | 匿名函数 | Lambda 表达式 | 闭包 | 内联函数 | 函数引用 )

    文章目录 一.函数头声明 二.函数参数 1.默认参数值 2.具名参数 三.Unit 函数 四.TODO 函数抛出异常返回 Nothing 类型 五.反引号函数名 六.匿名函数 七.匿名函数的函数类型 ...

  4. python max函数_使用'key'和lambda表达式的python max函数

    小编典典 lambda是一个匿名函数,它等效于: def func(p): return p.totalScore 现在max变成: max(players, key=func) 但是由于def语句是 ...

  5. python key=lambda函数_使用’key’和lambda表达式的python max函数

    我来自OOP背景,尝试学习Python.我使用的是max函数,该函数使用lambda表达式返回Player类型的实例,其中players列表中的totalScore最大. def winner(): ...

  6. Python学习 Day8-2 python的三元表达式(三目运算符)、lambda表达式、内置函数

    Python中的三元表达式(三目运算符) 语法:为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号) >>print(1 if 5 > 3 else 0) 1 Py ...

  7. python lambda 逻辑_Python之lambda表达式和内置函数

    lambda表达式其实就是简化的函数表达式. 它只用于处理简单逻辑, 它会自动return数据 通常定义一个函数,按照以下形式:def func(arg): return arg +1 result ...

  8. Python之lambda表达式和内置函数

    lambda表达式其实就是简化的函数表达式. 它只用于处理简单逻辑, 它会自动return数据 通常定义一个函数,按照以下形式: 1 2 3 4 5 def  func(arg):       ret ...

  9. python 用lambda表达式代替简单的函数, 匿名函数

    当一些函数很简单,仅仅只是计算一个表达式的值的时候,就可以使用lambda表达式来代替了. 比如: >>> add = lambda x,,y : x + y >>> ...

  10. php有lambda表达式吗,Python中lambda表达式的简单介绍(附示例)

    本篇文章给大家带来的内容是关于Python中lambda表达式的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一:匿名函数的定义 lambda parameter ...

最新文章

  1. FPGA之道(53)状态机的模型
  2. vue-router基本使用
  3. leetcode刷题实录:1
  4. python如何使用session和cookie_Python爬虫番外篇之Cookie和Session-阿里云开发者社区
  5. 车辆姿态相关的传感器概述
  6. 吴恩达《机器学习》学习笔记十——神经网络相关(2)
  7. 微型计算机最怕的是什么,为什么以前学生上“微机课”都要穿鞋套?老师:怕电脑中病毒...
  8. 36 万美元套利!3 步骤揭秘黑客 DeFi 闪电贷全过程
  9. mysql数据库优化总结 有图 有用
  10. Android开发小结Part2:目录
  11. 化学堵水剂处理油井出水问题
  12. 18-一种准确高效的领域知识图谱构建方法
  13. c语言读取三菱plc数据,c#通过网线读取三菱PLC数据
  14. c语言链表详解(超详细)
  15. Win8.1系统System.exe进程占用磁盘率高达100%如何解决
  16. idea 无法找到要转到的声明
  17. 关于t-SNE(T-distributed Stochastic Neighbor Embedding) t-分布随机近邻嵌入的简单理解
  18. iphone充电图_哪些iPhone具有无线充电功能?
  19. 计算机技术在法学方面的应用,现代计算机技术为法学带来了什么-西安交通大学教师个人主页.PDF...
  20. 记一次服务器被植入木马/病毒:kdevtmpfsi

热门文章

  1. matlab操作入门实验报告,matlab操作实验报告
  2. java stop和int,JAVA并发任务中止的isinterrupted,interupted()
  3. java application作用域_servlet三大作用域:request,session,application
  4. postgresql测试题_PostgreSQL练习
  5. config kubectl_kubectl常用命令归档及pod诊断工具安装
  6. 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
  7. Python | 新手必会的 9 个 Python 技巧
  8. 说说每月至少一次的那点事,文末有彩蛋!
  9. 我关注了389个公众号,这10个牛XXX的推荐给你!
  10. 手机经常提示找不到服务器,为什么我的手机显示无法连接到服务器