enumerate()
函数用于返回一个枚举对象,
它的功能就是将可迭代对象中的每个元素及从0开始的序号共同构成一个二元组的列表
zip()
zip()函数用于创建一个聚合多个可迭代对象的迭代器。
它会将作为参数传入的每个可迭代对象的每个元素依次组合成元组,
即第i个元祖包含来自每个参数的第i个元素。
例:
x = [1,2,3]
y = [4,5,6]
zipped = zip(x,y)
print(list(zipped))
z = [7,8,9]
zipped = zip(x,y,z)
print(list(zipped))
z = "FishC"
zipped = zip(x,y,z)
print(list(zipped))
import itertools
x = [1,2,3]
y = [4,5,6]
z = "FishC"
zipped = itertools.zip_longest(x,y,z) # 显示所有元素
print(list(zipped))
map()
map()函数会根据提供的函数对指定的可迭代对象的每个元素进行运算,
并将返回运算结果的迭代器
例:
mapped = map(ord,"FishC")
print(list(mapped))
mapped = map(pow,[2,3,10],[5,2,3]) 相当于 [pow(2,5),pow(3,2),pow(10,3)]
print(list(mapped))
filter()
filter()函数会根据提供的函数对指定的可迭代对象的每个元素进行运算,并将运算的结果为真的元素,以迭代器的形式返回
例:
list(filter(str.islower,"FishC"))
迭代器VS可迭代对象
一个迭代器肯定是一个可迭代对象,可迭代对象可以重复使用而迭代器则是一次性的。
例:
mapped = map(ord,"FishC")
for each in mapped:
print(each)