王亟亟的Python学习之路(10)-匿名函数

简介:

转载请注明出处:王亟亟的大牛之路

又有好多天没有碰Python的东西了,下午抽出点时间就补一篇介绍匿名函数

匿名函数在很多语言里都有,它可以使代码更加简洁、紧凑,模块化程度更高。

在jdk8里发现了lambda表达式的影子

以前我们要循环一个集合需要这样

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);  

for (int number : numbers) {  
    System.out.println(number);  
} 

现在可以这样

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);  

numbers.forEach((Integer value) -> System.out.println(value)); 

那么这么做的优势是什么?

1.不一定需要顺序处理List中的元素,顺序可以不确定

2.可以并行处理,充分利用多核CPU的优势

3.有利于JIT编译器对代码进行优化


我们回到Python,那么Python是如何操作的呢?

一个自增的方法

def add(x):
    return x + x

print(add(2))

结果:4

那么用户匿名函数如何实现呢?

v = lambda x: x + x

print(v(2))

结果:4

语法:

lambda [arg1[, arg2, ... argN]]: expression

在上面的例子里

x 为lambda函数的一个参数

: 分割符

在lambda函数中不能有return,其实:后面就是返回值所以也就返回了传入的2+2=4

这里还是把表达式指向了一个对象,不然打印出来就是

<function <lambda> at 0x101c6ef28>

为什么要用匿名函数?

  1. 程序一次行使用,所以不需要定义函数名,节省内存中变量定义空间

  2. 如果想让程序更加简洁时。

那我们再来说说其他的几种实现

有默认值的匿名函数

list = lambda x=3: x + 3

print('3为默认值', list(), list(5))
list1 = lambda x: x + 3
print('无默认值', list1(1))

结果:
3为默认值 6 8
无默认值 4

如果传参就把X等于传入的参数,如果不传参那就为默认值

# 像变量一样的匿名函数

v1 = lambda: 123
print('无参数匿名函数', v1())

结果:

无参数匿名函数 123
# 传入多个参数的匿名函数,但是这种模式不支持多个参数有默认值

list2 = lambda z, x, c=3: z + x + c
print('传入多个参数的匿名函数', list2(1, 2, 5))

结果:

传入多个参数的匿名函数 8

源码地址:https://github.com/ddwhan0123/PythonExample/blob/master/示例/l9Demo.py

目录
相关文章
|
1月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
260 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
1月前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
67 0
|
1月前
|
Python
Python之函数详解
【10月更文挑战第12天】
Python之函数详解
|
1月前
|
存储 数据安全/隐私保护 索引
|
23天前
|
测试技术 数据安全/隐私保护 Python
探索Python中的装饰器:简化和增强你的函数
【10月更文挑战第24天】在Python编程的海洋中,装饰器是那把可以令你的代码更简洁、更强大的魔法棒。它们不仅能够扩展函数的功能,还能保持代码的整洁性。本文将带你深入了解装饰器的概念、实现方式以及如何通过它们来提升你的代码质量。让我们一起揭开装饰器的神秘面纱,学习如何用它们来打造更加优雅和高效的代码。
|
25天前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
|
28天前
|
Python
python的时间操作time-函数介绍
【10月更文挑战第19天】 python模块time的函数使用介绍和使用。
29 4
|
29天前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
21 1
|
1月前
|
索引 Python
Python中的其他内置函数有哪些
【10月更文挑战第12天】Python中的其他内置函数有哪些
15 1
|
1月前
|
机器学习/深度学习 人工智能 架构师
Python学习圣经:从0到1,精通Python使用
尼恩架构团队的大模型《LLM大模型学习圣经》是一个系统化的学习系列,初步规划包括以下内容: 1. **《Python学习圣经:从0到1精通Python,打好AI基础》** 2. **《LLM大模型学习圣经:从0到1吃透Transformer技术底座》**
Python学习圣经:从0到1,精通Python使用
下一篇
无影云桌面