filter()函数
过滤器
用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
# filter第一个参数是函数,第二个参数是序列,根据函数过滤序列中的每一个参数,返回符合条件的参数,形成一个可迭代的序列
# 过滤出列表中的所有奇数
def is_odd(n):
return n % 2 == 1
a_list=list(filter(is_odd,[1,2,3,4,5,6,7,8,9]))
print(a_list)
b_list=list(filter(lambda x:x % 2==1,[1,2,3,4,5,6,7,8,9]))
print(b_list)
map()函数
根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
map() 函数语法:
map(function, iterable, ...)
参数
function -- 函数
iterable -- 一个或多个序列
返回值
Python 3.x 返回迭代器。
# map函数第一个参数是函数,第二个参数是序列(可以是一个序列或多个序列),序列中的每个一参数逐一调用第一个参数,返回一个可迭代的序列
a_list=list(map(lambda x:x*x,[1,2,3,4]))
print(a_list)
b_list=list(map(lambda x,y:x+y,[1,2,3,4],[9,8,7,6]))
print(b_list)
reduce()函数
对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
reduce() 函数语法:
reduce(function, iterable[, initializer])
参数
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数
返回值
返回函数计算结果。
# reduce函数,第一个参数是函数,第二个参数是序列,
# 函数有两个参数,先取出序列中最前面的两个参数进行函数处理,得到的结果做为一个参数,与序列中下一个参数又进行函数处理
# 直到把序列的全部参数处理完,然后返回函数处理的结果
from functools import reduce
a=reduce(lambda x,y:x+y, [1,2,3,4,5])
print(a)
b=reduce(lambda x,y:x*y,[1,2,3,4,5])
print(b)
zip()函数
打包函数
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。
# zip以最短的可迭代对象,将迭代对象中的参数一个个打包组成元组,然后返回这些元组组成的对象
a = [1,2,3]
b = [4,5,6]
c = [40,50,60,70,80]
a_zap=zip(a,b)
print(list(a_zap))
c_zip=zip(c,b)
print(list(c_zip))
b_zip=zip(a,c)
print(list(b_zip))
a_list,b_list=zip(*zip(a,b))
print(a_list)
print(b_list)