2.8 迭代序列
2.8.1 迭代序列的索引和值
迭代序列很简单,用for语句可以轻松获取到序列中的元素,不过有时候,我们需要同时获取到序列的元素的索引,那么可以通过以下方法实现:
迭代时获取索引和值:方法1
seq = list('Python')
for i in range(len(seq)):
index = i
value = seq[i]
print(f'{index=},{value=}')
index=0, value=‘P’
index=1, value=‘y’
index=2, value=‘t’
index=3, value=‘h’
index=4, value=‘o’
index=5, value=‘n’
迭代时获取索引和值:方法2
seq = list('Python')
for index, value in enumerate(seq):
print(f'{index=}, {value=}')
index=0, value=‘P’
index=1, value=‘y’
index=2, value=‘t’
index=3, value=‘h’
index=4, value=‘o’
index=5, value=‘n’
这种方法比第一种方法速度更快,也更简洁。
2.8.2 同时迭代多个序列
如果要同时迭代多个序列,则可以使用Python内置的zip函数:
list1 = [1, 2, 3]
list2 = [2, 4]
for i in zip(list1, list2):
print(i)
(1, 2)
(2, 4)
zip函数是用来将多个可迭代对象组合成元组的。zip函数可以接受任何类型的可迭代对象,如文件,列表,元组,字典,集合等。zip函数返回一个zip对象,它是一个元组的迭代器。
zip函数会将要迭代的可迭代对象,按照顺序,从每个可迭代对象中拿出1个元素,组成元组,直到某个可迭代对象所有的元素都拿出为止。