Python学习笔记(九) map、zip、filter、reduce

简介: 这篇文章主要介绍 Python 中几个常用的内置函数,用好这几个函数可以让自己的代码更加 Pythonic 哦

这篇文章主要介绍 Python 中几个常用的内置函数,用好这几个函数可以让自己的代码更加 Pythonic 哦



1、map


map(func, seq1, …, seqM) 方法的作用原理如下,其中 func 是处理函数、seq1 … seqM 是待处理的序列

5e96736d3c342c39d7bf30dbfed5e9fc_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzbXJ6eA==,size_16,color_FFFFFF,t_70#pic_center.png

简单来说,map() 方法会将处理函数作用于序列的每一个元素,并返回处理后的结果

该方法返回一个迭代器对象,可以用内置方法 list() 将其转换为列表类型,一个例子如下:

li0 = [1, 2, 3]
res = map(lambda x: x**2, li0)
print(type(res)) # <class 'map'>
print(list(res)) # [1, 4, 9]
li1 = [4, 5, 6]
li2 = [7, 8, 9]
res = map(lambda x, y : x + y, li1, li2)
print(list(res)) # [11, 13, 15]


2、zip


zip(seq1, …, seqM) 方法的作用原理如下,其中 seq1 … seqM 是待处理的序列

55903f23ce987208a8141bc090af2908_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzbXJ6eA==,size_16,color_FFFFFF,t_70#pic_center.png

简单来说,zip() 方法会将序列中具有相同索引值的元素打包在一起后返回

该方法返回一个迭代器对象,可以用内置方法 list() 将其转换为列表类型,一个例子如下:

li1 = [1, 2, 3]
li2 = [4, 5, 6]
res = zip(li1, li2)
print(type(res)) # <class 'zip'>
print(list(res)) # [(1, 4), (2, 5), (3, 6)]


值得注意的是,若提供的序列长短不一,则返回对象的长度与最短序列的长度相同

res = zip([1, 2, 3], [4, 5])
print(list(res)) # [(1, 4), (2, 5)]


3、filter


filter(func, seq) 方法的作用原理如下,其中 func 是处理函数、seq 是待处理的序列

6f2f4b42ae34ac9a3e4bb59769e95dec_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzbXJ6eA==,size_16,color_FFFFFF,t_70#pic_center.png


简单来说,filter() 方法会将处理函数作用于序列的每一个元素,并根据处理结果决定是否保留元素

该方法返回一个迭代器对象,可以用内置方法 list() 将其转换为列表类型,一个例子如下:

li0 = [1, 2, 3, 4, 5, 6]
res = filter(lambda x : x % 2 == 0, li0)
print(type(res)) # <class 'filter'>
print(list(res)) # [2, 4, 6]


4、reduce


reduce(func, seq) 方法的作用原理如下,其中 func 是处理函数、seq 是待处理的序列

4fb6c15619eaae61efc941b012187ffb_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dzbXJ6eA==,size_16,color_FFFFFF,t_70#pic_center.png


简单来说,reduce() 方法会将处理函数迭代作用于序列中的元素,并返回处理后的结果,一个例子如下:

from functools import reduce
li1 = [1, 2, 3, 4, 5]
res = reduce(lambda x, y : x * 10 + y, li1)
print(type(res)) # <class 'int'>
print(res) # 12345
li2 = ['h', 'e', 'l', 'l', 'o']
res = reduce(lambda x, y : x + y, li2)
print(type(res)) # <class 'str'>
print(res) # hello



文章知识点与官方知识档案匹配,可进一步学习相关知识

目录
相关文章
WK
|
1月前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
81 36
|
2月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
430 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
166 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
175 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
73 1
|
2月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
117 1
|
2月前
|
索引 Python
Python学习笔记编程小哥令狐~持续更新、、、(上)
Python学习笔记编程小哥令狐~持续更新、、、(上)
53 2
|
2月前
|
存储 Python
Python学习笔记编程小哥令狐~持续更新、、、 (下)
Python学习笔记编程小哥令狐~持续更新、、、 (下)
35 1
|
2月前
|
存储 Python
【免费分享编程笔记】Python学习笔记(二)
【免费分享编程笔记】Python学习笔记(二)
48 0
【免费分享编程笔记】Python学习笔记(二)
|
2月前
|
Java 编译器 Go
Python学习笔记--- day01计算机基础和环境搭建(一)
Python学习笔记--- day01计算机基础和环境搭建(一)
47 2