Python map函数,zip函数,filter 函数

 

filter(func, seq)  

 

返回filter对象,其中包含序列seq中使得单参数函数func返回值等价于True的那些元素,如果函数func为None则返回包含seq中等价于True的元素的filter对象,filter对象中的元素只能使用一次

 

filter(function,iterable)

function -- 判断函数。

iterable -- 可迭代对象

 

 

def is_odd(n):

    return n%2 == 1

res = filter(is_odd,[1,2,3,4,5,6,7,8,9,10])

 

print(type(res)) # <class 'filter'>

print(list(res)) # [1,3,5,7,9]

 

 

 

zip(seq1 [, seq2 [...]]) 

 

返回zip对象,其中元素为(seq1[i], seq2[i], ...)形式的元组,最终结果中包含的元素个数取决于所有参数序列或可迭代对象中最短的那个,zip对象中的元素只能使用一次

 

my_list = [11,12,13]

my_tuple = (21,22,23)

print(type( zip(my_list,my_tuple) )) # <class 'zip'>

print(list( zip(my_list, my_tuple) )) #  输出  [(11, 21), (12, 22), (13, 23)]

 

 

>>> my_list = [11,12,13]
>>> my_tuple = (21,22,23)
>>> print(list( zip(my_list,my_tuple) ))
[(11, 21), (12, 22), (13, 23)]

###### 元素个数取决于所有参数序列或可迭代对象中最短的那个
>>> my_list = [11,12,13]
>>> my_tuple = (21,22)
>>> print(list( zip(my_list,my_tuple) ))
[(11, 21), (12, 22)]

 

 

map

map(function, iterable)

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

返回迭代器。

 

def square(x) :         # 计算平方数

    return x ** 2

 

print(type(map(square, [1,2,3,4,5])))    # 计算列表各个元素的平方 # 返回迭代器 <class 'map'>

print(list(map(square, [1,2,3,4,5])))   # 使用 list() 转换为列表  [1, 4, 9, 16, 25]

 

posted @ 2022-06-04 10:59  emanlee  阅读(76)  评论(0编辑  收藏  举报