内置函数filter、map、zip、lambda、partial

(1)filter:过滤函数,根据函数过滤列表

方法一:输出:[1, 3, 5, 3, 7]

def fun(n):
return n < 10


li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
res = filter(fun, li)
print(list(res))

 

方法二:输出:[1, 3, 5, 3, 7]

li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
res = filter(lambda x:x<10, li)
print(list(res))

方法三:输出:[1, 3, 5, 3, 7]

from functools import partial
def fun(n):
return n < 10


li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
filter2 = partial(filter, fun)
print(list(filter2(li)))

(2)map:根据函数,挨个计算列表元素

方法一:[42, 68, 2, 6, 68, 10, 6, 14, 20]

def fun1(n):
return n * 2


li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
res = map(fun1, li)
print(list(res))

方法二:

li = [21, 34, 1, 3, 34, 5, 3, 7, 10]
res = map(lambda x:x*2, li)
print(list(res))

方法三:[42, 68, 2, 6, 68, 10, 6, 14, 20]

from functools import partial

filter2 = partial(map, fun1)
print(list(filter2(li)))

(3)zip:打包,将多个列表,大打包成分组元祖

res = zip([1, 2, 3], [6, 7, 8])
# print(list(res)) # 输出:[(1, 6), (2, 7), (3, 8)]
print(dict(list(res))) #输出:{1: 6, 2: 7, 3: 8}

(4)lambda:匿名函数

print((lambda x: x * 3)(10))
print([(lambda x: x * 3)(i) for i in range(10)])
print(list(filter(lambda x: x < 5, [i for i in range(10)])))
posted @ 2022-04-22 14:30  狒狒桑  阅读(30)  评论(0编辑  收藏  举报