python中的zip、lambda、map操作

简介: python 中有几个比较酷炫的操作,比如:zip、lambda、map 一、zip操作 zip字面意思:拉链。这么来记,把几个东西扔到一个包里,拉上拉链,就算打包好了。通俗点讲,就是把第1个参数、与第2个参数.

python 中有几个比较酷炫的操作,比如:zip、lambda、map

一、zip操作

zip字面意思:拉链。这么来记,把几个东西扔到一个包里,拉上拉链,就算打包好了。通俗点讲,就是把第1个参数、与第2个参数... 到第N个元素,按位置1个个对齐,打包输出一系列元组(turple).

x = (1, 2)
y = ("a", "b")
zip_result = zip(x, y)
print(list(zip_result))

x = [4, 5, 6]
y = ['d', 'e']

zip_result = zip(x, y)
print(list(zip_result))

输出:

[(1, 'a'), (2, 'b')]
[(4, 'd'), (5, 'e')]

注意第2行的输出,这个类似木桶原理,元素个数最少的,决定最后输出元素的个数,x里有[4,5,6]3个元素,而y里有['d','e']2个元素,最终结果里就只有2个turple。另外zip的结果是一个对象,要查看的话,得转化成list对象,这样才能友好的输出。 

 

二、lambda

python里的lambda与c#、java不同,主要用于将一些逻辑简单的代码,写得更简洁(当然:是否更简洁,这个有争议,python里的 ... for ... in ... if ... 本身就很灵活,已经可以做到代码风格非常简洁)

# lambda 可以用于定义一些逻辑简单的函数
add1 = lambda m, n: m + n


# 上面的lambda 等效于下面这个
def add2(a, b):
    return a + b


print(add1(1, 2))
print(add2(1, 2))

结果都是输出3 

 

三、map操作

python时的map,完全不同于java中的map容器,它实际上有点类似于c#中的委托,可以把function函数本身当成一个参数。

# lambda 可以用于定义一些逻辑简单的函数
add1 = lambda m, n: m + n


# 上面的lambda 等效于下面这个
def add2(a, b):
    return a + b


map_result = map(add1, [1, 2], [6, 7])
print(list(map_result))

map_result = map(add2, [3], [4])
print(list(map_result))

输出:

[7, 9]
[7]

解释一下:第一次是把[1,2]与[6,7]作用于add1函数,相当于[1+6,2+7],每个元数按位相加,第二次则是[3]与[4]相加。可能有同学会想,如果二个相加的列表,元素个数不对等,比如

map_result = map(add1, [1, 2], [6, 7, 8])

这样呢?答案仍然是木桶原理,大家可以自己去验证。

作者: 菩提树下的杨过
出处: http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
目录
相关文章
|
4天前
|
Python
【Python操作基础】——帮助文档
【Python操作基础】——帮助文档
|
4天前
|
Python
【Python操作基础】——字典,迭代器和生成器
【Python操作基础】——字典,迭代器和生成器
|
4天前
|
Python
【Python操作基础】——集合
【Python操作基础】——集合
|
4天前
|
Python
【Python操作基础】——字符串
【Python操作基础】——字符串
|
1天前
|
关系型数据库 Java 分布式数据库
实时计算 Flink版操作报错合集之在使用 Python UDF 时遇到 requests 包的导入问题,提示 OpenSSL 版本不兼容如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
14 5
|
2天前
|
存储 Java Shell
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
|
4天前
|
存储 JSON 安全
Python中的文件操作与文件IO操作
【5月更文挑战第14天】在Python中,文件操作是常见任务,包括读取、写入和处理文件内容。`open()`函数是核心,接受文件路径和模式(如'r'、'w'、'a'、'b'和'+')参数。本文详细讨论了文件操作基础,如读写模式,以及文件IO操作,如读取、写入和移动指针。异常处理是关键,使用`try-except`捕获`FileNotFoundError`和`PermissionError`等异常。进阶技巧涉及`with`语句、`readline()`、`os`和`shutil`模块。数据序列化与反序列化方面,介绍了
17 0
|
4天前
|
安全 测试技术 Python
零操作,高效下载:利用Playwright和Python完成文件下载
Playwright是Microsoft开发的跨浏览器自动化测试工具,能模拟用户操作,包括文件下载。在Python中,它提供`expect_download()`来处理文件下载,无需额外工具。下载开始时触发事件,完成后可通过`download.path()`获取路径。下载相关操作包括取消、删除、获取错误信息、所属页面、文件名、URL等。示例代码展示了如何下载pytest的压缩文件,简化了web自动化测试中的文件下载场景。
13 4
|
4天前
|
C++ 计算机视觉 Python
【学习什锦】python中的匿名函数(lambda)与max、key参数
【学习什锦】python中的匿名函数(lambda)与max、key参数
10 3
|
4天前
|
存储 测试技术 程序员
【Python】—— NumPy基础及取值操作
【Python】—— NumPy基础及取值操作
8 1