用于两两匹配形成新的序列,或者匹配到具体位置列出下标
- zip()函数
可以使两个列表像拉链一样一一匹配缝合(按最端序列长度缝合),并返回一个由元组组成的列表
names = ['anne', 'beth', 'george', 'damon']
ages = [12, 45, 32, 102]
for i in range(len(names)):
print(names[i], 'is', ages[i], 'years old') #常规利用循环匹配
#利用zip()函数
>>> list(zip(names, ages))
[('anne', 12), ('beth', 45), ('george', 32), ('damon', 102)]
>>> for name, age in zip(names, ages): #解包
print(name, 'is', age, 'years old')
#zip函数可缝合任意长度的序列,但终止于最短序列的长度
>>> list(zip(range(5), range(100000000)))
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
- enumerate()函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1)) # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
利用enumerate()迭代并获得索引替换
>>>for index, string in enumerate(strings):
if 'xxx' in string:
strings[index] = '[censored]'