内置函数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)])))