zip
# 相当于是拉链,将两个列表对应位置的数据拉到一起,变成元组,最后返回一个迭代器。用list将迭代器转换为列表即可看到内容
# 如果列表数据长度不对等,就以短的为主,剩下的不管了
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c', 'd']
z = zip(list1, list2)
print(list(z)) # >>>> 输出: [(1, 'a'), (2, 'b'), (3, 'c')]
for x,y in list(z):
print(x) # >>>> 每次循环打印出来的x分别就是1,2,3
print(y) # >>>> 每次循环打印出来的y分别就是a, b, c
map
# 相当于是映射,多与lambda合作,告诉lambda函数应该作用于哪里
numbers = [1, 2, 3, 4, 5]
doubled = map(lambda x: x * 2, numbers) # 意思是,定义了一个lambda函数,而map(匿名函数式,numbers),就是用来给匿名函数传参
print(list(doubled)) # >>> 输出: [2, 4, 6, 8, 10]
filter
# 只用来筛选布尔值为【真】的结果,结构是filter(函数,传入给函数的参数)————结果是迭代器
numbers = [1, 2, 3, 4, 5]
even_numbers = filter(lambda x: x % 2 == 0, numbers) # 同样在 filter 中使用 lambda
print(list(even_numbers)) # 输出: [2, 4]
lambda函数
# 1. 如果有变量储存匿名函数,则匿名函数可以有返回值
square = lambda x: x ** 2 # >>>> 定义一个 lambda 函数,它接收一个参数 x 并返回 x 的平方
result = square(5) # >>>> 调用这个 lambda 函数,并打印返回值
print(result) # >> 输出:25
# 2. 如果没有,匿名函数通常就会与其他函数合作,返回值的内容和类型则由另一个函数的性质决定了,比如如果是和filter合作,返回的内容都是布尔值,和map合作,返回来的就是列表了。 >>> 这里我说的是list之后,毕竟map和filter都是返回迭代器
标签:map,函数,zip,filter,numbers,print,lambda
From: https://www.cnblogs.com/abloger/p/18258887