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
|
21天前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
68 36
|
2月前
|
索引
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
|
1月前
|
存储 大数据 Python
案例学Python:filter()函数的用法,高级!
`filter()`函数是Python中处理序列数据的强大工具,它允许我们高效地根据条件过滤元素。通过结合匿名函数、常规函数或直接利用Python的内置逻辑,`filter()`提供了灵活且高效的过滤机制,尤其在大数据处理和内存敏感的应用中展现出其价值。掌握 `filter()`的使用,不仅能提升代码的可读性和效率,还能更好地适应Python的函数式编程风格。
33 2
|
2月前
|
Python
Python函数式编程-Filter
Python函数式编程-Filter
WK
|
2月前
|
Python
map和filter的区别是什么
`map()`和`filter()`均为Python中的高阶函数,前者针对可迭代对象中的每个元素执行指定操作,如数值翻倍或字符串转大写;后者则筛选出符合条件的元素,例如仅保留偶数或非空字符串。两者均返回迭代器,并可通过`list()`等函数转换为所需的数据结构。具体使用时,应依据实际需求和场景选择合适的函数。
WK
18 1
WK
|
2月前
map和filter的区别是什么
在编程中,`map` 和 `filter` 是处理数组或集合时常用的两个函数。`map` 用于将每个元素通过指定函数转换后生成新的数组,而 `filter` 则根据条件筛选出符合条件的元素组成新数组。两者的主要区别在于:`map` 的返回数组长度与原数组相同,但元素被转换;`filter` 的返回数组长度可能不同,只包含符合条件的元素。
WK
30 2
|
2月前
|
JavaScript 前端开发
JavaScript 中 五种迭代数组的方法 every some map filter forEach
本文介绍了JavaScript中五种常用数组迭代方法:every、some、filter、map和forEach,并通过示例代码展示了它们的基本用法和区别。
|
3月前
|
JavaScript 前端开发 索引
JS中常用的数组迭代方法(filter,forEach,map,every,some,find,findIndex)
这段代码和说明介绍了JavaScript中数组的一些常用方法。函数接收三个参数:`item`(数组项的值)、`index`(项的位置,可选)和`array`(数组本身,可选)。示例展示了如何使用`filter()`过滤非空项、`forEach()`遍历数组、`map()`处理并返回新数组、`every()`检查所有元素是否满足条件、`some()`检查是否存在满足条件的元素、`find()`获取首个符合条件的元素值以及`findIndex()`获取其索引位置。这些方法都不会修改原数组。
JS中常用的数组迭代方法(filter,forEach,map,every,some,find,findIndex)
|
3月前
|
存储 算法 Java
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
|
3月前
|
安全 Java API
Java 8 流库的魔法革命:Filter、Map、FlatMap 和 Optional 如何颠覆编程世界!
【8月更文挑战第29天】Java 8 的 Stream API 通过 Filter、Map、FlatMap 和 Optional 等操作,提供了高效、简洁的数据集合处理方式。Filter 用于筛选符合条件的元素;Map 对元素进行转换;FlatMap 将多个流扁平化合并;Optional 安全处理空值。这些操作结合使用,能够显著提升代码的可读性和简洁性,使数据处理更为高效和便捷。
124 0