目录
2. filter()——根据给定的函数过滤掉指定序列中的元素
3. reduce()——根据给定的函数对参数序列中的元素进行累积
1.map()——根据提供的函数对指定序列做映射
map()函数是根据提供的函数(即function)对指定的序列(即iterable)做映射。
简单说就是iterable指向的每一个元素都会调用function函数,返回每次function函数返回值的新列表。
map()函数的语法如下:
map(function,iterable,...)
参数说明:
- function 是调用的函数
- iterable 是一个或多个序列
返回值:python2返回列表;python3返回迭代器。
需要注意,如果函数有多个参数,但每个参数的序列元素数量不一样,会根据最少元素的序列进行,如示例3.
使用示例1:计算列表中每个元素的平方
# python2.x
def square(x):
return x**x
l = map(square,[1,2,3,4,5,6])
print(l)
print(type(l))
显示结果:
使用示例2:计算列表中每个元素的三次方
# python3.x
def square(x):
return x**x
l = list(map(square,[1,2,3,4,5,6])) # 使用list转换为列表
print(l)
print(type(l))
显示结果:
使用示例3,如果函数有多个参数,参数序列元素不一样,按照元素最少的序列进行映射。
listx=[1,2,3,4,5,6,7]
listy=[2,3,4,5,6]
listz=[100,100,100,100]
l = list(map(lambda x,y,z : x*100 + y*100 + z, listx,listy,listz))
print(l) # 输出 [400, 600, 800, 1000]
2. filter()——根据给定的函数过滤掉指定序列中的元素
filter()用于过滤序列,过滤掉不符合条件的元素,返回由符合条件的元素组成的新列表。python3中返回迭代器对象。
filter()语法格式:
filter(function,iterable)
序列中的每个元素作为参数传递给函数进行判断,然后返回True或False,最后将返回True的元素放到新列表中。
参数说明:
- 参数function是判断函数;
- 参数iterable是可迭代对象;
返回值:python2中返回列表,python3返回迭代器对象。
使用示例1:得到列表中的所有偶数
def is_even(num):
return num%2==0
l = filter(is_even,[1,2,3,4,5,6,7,8,9])
print((list(l))) # 输出 [2, 4, 6, 8]
# 与lambda表达式混合使用
l = filter(lambda n : n%2==0, [1,2,3,4,5,6,7,8,9])
print(list(l)) # 输出 [2, 4, 6, 8]
3. reduce()——根据给定的函数对参数序列中的元素进行累积
reduce()函数对参数序列中的元素进行累积。该函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数function(有两个参数)先对集合中的第1,2个元素进行操作,得到的结果再与第三个数据用function函数运算,最后得到一个结果。
注意:python3中reduce()函数被移到functools模块,如果要使用该函数,需要导入functools模块来调用。
reduce()函数语法格式:
reduce(function,iteranle[, initializer])
参数说明:
- function:函数,一定有两个参数;少于两个或者多于两个都不可以;
- iterable:可迭代对象;
- initializer:可选,初始参数;
返回值:返回函数计算的结果;
使用示例:计算1+2+3+4+5
def add_nums(x,y):
return x+y
l=reduce(add_nums,[1,2,3,4,5])
print(l) # 输出 15
l=reduce(lambda x,y:x+y,[1,2,3,4,5])
print(l) # 输出 15
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/46106.html