Python中的並行迭代與編號迭代

2021-07-23 19:00:26 字數 1145 閱讀 1764

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.編號迭代

有些時候想要迭代序列中的物件,同時還想要獲取當前物件的索引。例如沒在乙個字串列表中替換多有含'***'的子字串。實現的方法肯定很多,例如:

index = 0

for string in strings:

if '***' in strings:

strings[index] = '[******ed]'

index += 1

其中乙個比較方便的方法就是使用內建的·enumerate函式:

for index,string in enumerate(strings):

if '***' in strings:

strings[index] = '[******ed]'

這個函式可以在提供索引的地方迭代索引-值對。

Python3下的 並行迭代 與 按索引迭代

在使用python3時,有 並行迭代 與 按索引迭代 並行迭代相對來說好理解,現在介紹下 按索引迭代 廢話不多,直接上例項 demo 並行迭代 zip函式 names anne beth george damon bob ages 12,45,32,102,101,103 names 與 ages ...

python 迭代與函式

返回結果是乙個列表 function 傳的是乙個函式名,可以是python內建的,也可以是自定義的。就像上面的匿名函式lambda iterable 傳的是乙個可以迭代的物件,例如列表,元組,字串這樣的。map 用法 a 1,2,3 y map lambda x x 1,a print list y...

Python技巧 物件迭代與反迭代

welcome to my blog 例項化iter 由可迭代物件得到迭代器 通過給iter 傳入可迭代物件 也就是例項化iter這個物件 得到迭代器物件 可迭代物件 列表,字串,元組,字典 iter 的定義中 the argument must supply its own iterator,or...