python3 lambda函数

文章介绍了Python中的lambda函数用于快速定义简短匿名函数,并在排序操作中如何使用。通过示例展示了如何使用sort()函数以及key和reverse参数来改变列表排序,其中key参数可以接受lambda函数以自定义排序依据,reverse参数控制升序或降序排列。此外,文中还给出了一个基于学生分数的排序例子。

lambda也是python支持的一种定义函数的方法,python3 lambda函数

  1.排序改变原始序列,但排序不改变原始序列的顺序。

  使用排序和排序键操作,前者改变原数组,后者不改变原数组

  改变原始数组操作的一种方法是直接给新变量赋值,如下所示

  方法1:

  X=[4,6,2,1,7,9] y=x [:] y.sort () print (y) # [1,2,4,6,7,9] print (x) # [4,6,2,1,7,9]方式

  x=[4,6,2,1,7,9]

  y=已排序(x)

  打印(y) #[1,2,4,6,7,9]

  打印(x)#[4,6,2,1,7,9]

  通过对比,我们发现前者改变的是原始数组,而后者改变的是原始数据。

  2、排序函数的两个可选参数sort(key,reverse = True/False)

  1、钥匙;

  使用key时,必须提供一个排序过程总是调用的函数。

  2.要实现降序排序,reverse需要提供一个布尔值:True表示降序排序,

  刚写了个小代码,遇到了参数的调用。我们来看看这两个的功能。代码如下:

  score=[(A ,80)、( B ,86)、( C ,92)、( D ,87)、( E ,88)、( F ,85)、( G ,86)、( H ,89)、( I ,88)、( J ,94)、( K ,94)、( L ,80)、( M ,83)、( N ,80)、( O ,88)、( P ,94)、( Q ,82)、( R 。 score [0] [0],score[0][Len(score)):if(score[I][1]==score[I-1][1]):print(index 0,score [I] [0],score[I][1])else:index 0=i1 print(I 1,score

  [(T ,100)、( S ,96)、( J ,94)、( K ,94)、( P ,94)、( W ,94)、( C ,92)、( Z ,92)、( H ,89)、( Y ,89)、( E ,88)、( I ,88)、( O ,88)、( D ,87)、( b ,86)、( g ,86)、( f ,85)、( r ,88。

  score.sort(key=lambda d:d[1],reverse=True)

  我们可以看到key定义了一个lambda函数,从字典中提取分数,并对分数执行降序操作。返回的结果按照分数从大到小排序。此刻,我们也应该知道lambda函数的作用。这个比较简单,大家应该能理解它的意思。

原文地址:http://www.ccttoo.com/html/1672.html

本文来自网络,不代表菜鸟教程之家立场,转载请注明出处。

### PythonLambda 函数的使用教程 #### 定义与基本语法 Lambda函数是一种小型匿名函数,在Python中用于创建简单的、临时的一次性函数。其定义方式不同于常规函数,不需要`def`关键字,而是采用`lambda`关键字来声明。一个典型的lambda表达式的结构如下: ```python lambda 参数1, 参数2, ... : 表达式 ``` 此形式表明lambda函数接受多个输入参数,并返回由冒号后的单个表达式计算的结果。 #### 示例对比:普通函数 vs. Lambda函数 为了直观展示两者的区别,考虑下面的例子[^1]: - **普通函数** ```python def multiply(x, y): return x * y print(multiply(3, 7)) ``` - **Lambda函数** ```python multiplier = lambda x, y: x * y print(multiplier(3, 7)) ``` 可以看到,当仅需执行简单操作时,使用lambda可以使代码更为紧凑简洁。 #### 应用场景拓展 尽管lambda函数本身只有单一的形式,但在不同上下文中却能发挥多样化的用途。常见的应用场景包括但不限于以下几个方面[^2][^4]: - **作为高阶函数的参数** 对于像`map()`这样的内置函数来说,传入lambda可以简化映射逻辑: ```python numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(lambda n: n**2, numbers)) print(squared_numbers) # 输出: [1, 4, 9, 16, 25] ``` - **配合过滤器筛选数据** 利用`filter()`函数结合lambda实现条件性的元素选取: ```python even_numbers = list(filter(lambda n: n % 2 == 0, range(10))) print(even_numbers) # 输出: [0, 2, 4, 6, 8] ``` - **参与排序规则定制** 在对复杂对象集合进行排序时,可以通过指定key参数为lambda来自定义比较依据: ```python students = [("Alice", 22), ("Bob", 20), ("Charlie", 21)] sorted_students = sorted(students, key=lambda student: student[1]) for name, age in sorted_students: print(f"{name}: {age}") # 输出顺序按照年龄从小到大排列的学生名单 ``` #### 总结 通过上述介绍可以看出,虽然lambda函数的功能看似有限,但它确实在许多场合下提供了极大的便利性和灵活性。特别是在处理短小精悍的任务或是与其他高级特性组合使用时,能够显著提升编码效率和可读性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值