⛳目录
- filter
- map
- reduce
🧩filter功能
- 对循环根据过滤条件进行过滤并生成迭代器
🎈filter用法
Python内建的filter()函数用于过滤序列,和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
-
用法:
filter(func, list)
-
参数介绍:
func
: 对list每个item进行条件过滤的定义list
:需要过滤的列表
-
filter举例:
res = filter(lambda x:x >1,[0,1,2])
-
返回值:
<filter at Ox4f3af70>->[2]
🎈map
map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
map()
函数可以传入一个或多个序列作为参数。它将一个或多个序列中对应位置的元素传递给指定的函数进行处理,并返回一个包含处理结果的迭代器。
-
map()
函数的基本语法如下: -
map(function, *iterables)
-
参数说明:
-
function
:用于处理每个元素的函数。 -
iterables
:一个或多个序列,可以是列表、元组、集合等可迭代对象。 -
当
map()
函数传入多个序列时,它会依次从这些序列中取出对应位置的元素,并将它们作为参数传递给指定的函数进行处理。如果传入的序列长度不一致,map()
函数会以最短的序列长度为准,多余的元素会被忽略。 -
举例:
res = map(lambda x:x > 1,[0,1,2])
-
返回值:
<map at 0x4f3af70>->[False, False,True]
🎈reduce
- 对循环前后两个数据进行累加(必须接收两个参数)
- 用法∶
reduce(func, list)
- 参数介绍:
func
:对数据累加的函数
list
:需要处理的列表 - 举例:
res =reduce(lambda x,y:x +y,[0,1,2])
- 返回值:
数字->3
🧩reduce的导入
from functools import reduce
🎯实战
# coding: utf-8
from functools import reduce
fruits = ['apple', 'banana', 'orange']
# filter
result = filter(lambda x: ('e' in x), fruits)
print(list(result))
print(fruits)
# filter with function
def filter_func(item):
if 'e' in item:
return True
print('================================')
filter_result = filter(filter_func, fruits)
print(list(filter_result))
# map
map_result = map(lambda item: 'e' in item, fruits)
print(list(map_result))
# reduce
reduce_result = reduce(lambda x, y: x * y, [1, 2, 3, 4, 5, 6, 7, 8])
print(reduce_result)
reduce_result = reduce(lambda x, y: x + y, fruits)
print(reduce_result)
['apple', 'orange']
['apple', 'banana', 'orange']
================================
['apple', 'orange']
[True, False, True]
40320
applebananaorange
进程已结束,退出代码0