一.map
1.第一个参数 function 以参数序列中的每一个元素调用 function 函数
2.返回包含每次 function 函数返回值的新列表
def square(x):
return x * x
y = map(square, [1, 2, 3, 4])
z = map(str, [1, 2, 3, 4])
a = map(int, ['1', '2', '3', '4'])
print(list(y))
print(list(z))
print(list(a))
# [1, 4, 9, 16]
# ['1', '2', '3', '4']
# [1, 2, 3, 4]
二.reduce
1.对参数序列中元素进行累积
2.语法:reduce(function, iterable[, initializer])
- function – 函数,有两个参数
- iterable – 可迭代对象
- initializer – 可选,初始参数
from functools import reduce
# 两数相加
def add(x, y):
return x + y
# 计算列表和:1+2+3+4+5
sum1 = reduce(add, [1, 2, 3, 4, 5])
# 使用 lambda 匿名函数
sum2 = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])
print(sum1)
print(sum2)
# 15
# 15
三.filter
1.对每个元素进⾏判断,返回 True或 False
2.filter()根据判断结果⾃动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
# TODO 过滤能被2整除的数
even_num = list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6]))
# TODO 过滤不能被2整除的数
odd_num = list(filter(lambda x: x % 2, [1, 2, 3, 4, 5, 6]))
# # TODO 过滤26个字母排在g之前的
res = list(filter(lambda x: x < 'g', 'hijack'))
print(even_num)
print(odd_num)
print(res)
# [2, 4, 6]
# [1, 3, 5]
# ['a', 'c']