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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
目录
相关文章
|
29天前
|
数据格式 Python
如何使用Python的Pandas库进行数据透视图(melt/cast)操作?
Pandas的`melt()`和`pivot()`函数用于数据透视。基本步骤:导入pandas,创建DataFrame,然后使用这两个函数转换数据格式。示例代码展示了如何通过`melt()`转为长格式,再用`pivot()`恢复为宽格式。输入数据是包含'Name'和'Age'列的DataFrame,最终结果经过转换后呈现出不同的布局。
39 6
|
1月前
|
索引 Python
如何使用Python的Pandas库进行数据透视表(pivot table)操作?
如何使用Python的Pandas库进行数据透视表(pivot table)操作?
16 0
|
1月前
|
Unix Shell Linux
赞!优雅的Python多环境管理神器!易上手易操作!
赞!优雅的Python多环境管理神器!易上手易操作!
|
1月前
|
SQL 关系型数据库 MySQL
Python怎么操作Mysql数据库
Python怎么操作Mysql数据库
49 0
|
12天前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
|
7天前
|
数据采集 JSON 网络协议
「Python系列」Python urllib库(操作网页URL对网页的内容进行抓取处理)
`urllib` 是 Python 的一个标准库,用于打开和读取 URLs。它提供了一组模块,允许你以编程方式从网络获取数据,如网页内容、文件等。
29 0
|
18天前
|
Python
python使用tkinter库,封装操作excel为GUI程序
python使用tkinter库,封装操作excel为GUI程序
|
22天前
|
Python
Python内置函数map、split、join讲解
Python内置函数map、split、join讲解
29 0
|
25天前
|
程序员 数据处理 开发者
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
23 2
|
29天前
|
机器学习/深度学习 数据采集 C++
【Python 基础教程 07】全面掌握Python3数字操作:入门到精通的实用指南
【Python 基础教程 07】全面掌握Python3数字操作:入门到精通的实用指南
84 2