Python中的并行迭代与编号迭代

1.并行迭代

   有时候,一个程序中需要我们同事在一个for循环中迭代两个以上的集合。其中一种方法就是循环其中一个集合的索引,然后根据索引对所有集合进行循环,例如:

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函数进行并行迭代,可以把序列压在一起,然后返回一个元组的列表:

>>>zip(names,ages)
[('anne',12),('beth',45),('george',32),('damon',102)]
   现在我们可以在循环中解包元组:

for name,age in zip(names,ages):
    print(name,'is',age,'year old')
   zip函数可以作用于任意多的序列,如:

for name,age,number in zip(names,ages,range(4)):
    print(number,':',name,'is',age,'year old')


2.编号迭代

    有些时候想要迭代序列中的对象,同时还想要获取当前对象的索引。例如没在一个字符串列表中替换多有含'xxx'的子字符串。实现的方法肯定很多,例如:

index = 0
for string in strings:
    if 'xxx' in strings:
        strings[index] = '[censored]'
    index += 1
   其中一个比较方便的方法就是使用內建的·enumerate函数:

for index,string in enumerate(strings):
    if 'xxx' in strings:
        strings[index] = '[censored]'
   这个函数可以在提供索引的地方迭代索引-值对。






你可能感兴趣的:(Python)