python的累积器、映射器、过滤器

 1 过滤器
 2 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
 3 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
 4 语法
 5 以下是 filter() 方法的语法:
 6 filter(function, iterable)
 7 参数
 8 function -- 判断函数。
 9 iterable -- 可迭代对象。
10 返回值   返回一个迭代器对象
11 def is_odd(n):
12     return n%2==1
13 tmplist=filter(is_odd,list(range(1,11)))
14 tmplist=list(tmplist)
15 print(tmplist)  #[1, 3, 5, 7, 9]
16 
17 过滤出1-100中平方根是整数的数
18 import math
19 def _is_sqr(x):
20     return math.sqrt(x)%1==0
21 tmplist=filter(_is_sqr,range(1,101))
22 newlist=list(tmplist)
23 print(newlist)  #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
24 
25 
26 映射器
27 描述
28 map() 会根据提供的函数对指定序列做映射。
29 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
30 语法
31 map() 函数语法:
32 map(function, iterable, ...)
33 参数
34 function -- 函数
35 iterable -- 一个或多个序列
36 返回值
37 Python 2.x 返回列表。
38 Python 3.x 返回迭代器。
39 
40 def square(x):
41     return x**2
42 print(list(map(square,list(range(1,6))))) #[1, 4, 9, 16, 25]
43 
44 print(list(map(lambda x:x**2,[1,2,3,4,5]))) #[1, 4, 9, 16, 25]
45 
46 提供了两个列表,对相同位置的列表数据进行添加
47 print(list(map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10]))) #[3, 7, 11, 15, 19]
48 
49 
50 
51 累积器
52 描述
53 reduce() 函数会对参数序列中元素进行累积。
54 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 12 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
55 语法
56 reduce() 函数语法:
57 reduce(function, iterable[, initializer])
58 参数
59 function -- 函数,有两个参数
60 iterable -- 可迭代对象
61 initializer -- 可选,初始参数
62 返回值
63 返回函数计算结果。
64 from functools import reduce
65 def add(x,y):
66     return x+y
67 print(reduce(add,[1,2,3,4,5]))  #15
68 
69 print(reduce(lambda x,y:x+y,[1,2,3,4,5])) #15
70 转自菜鸟教程 www.runoob.com
原文地址:https://www.cnblogs.com/zpdbkshangshanluoshuo/p/10486399.html