是否可以在python中同時執行多個循環?同時執行多個for循環
贊(語法錯誤,當然):
for a,b in list_of_a,list_of_b:
//do some thing
通過同時,我不表示線程或進程的意義。
我的意思是,它們在迭代期間共享相同的索引或遊標。
我能想到實現這個的是:
- 使用int變量作爲一個共享光標
- 把它們放在一個元組列表和循環數組列表。但創建列表是費力的
我只是想知道是否有一些內置函數或更簡單的語法來實現。
是否可以在python中同時執行多個循環?同時執行多個for循環
贊(語法錯誤,當然):
for a,b in list_of_a,list_of_b:
//do some thing
通過同時,我不表示線程或進程的意義。
我的意思是,它們在迭代期間共享相同的索引或遊標。
我能想到實現這個的是:
我只是想知道是否有一些內置函數或更簡單的語法來實現。
for a,b in zip(list_of_a, list_of_b):
# Do some thing
如果你使用的是Python 2.x中,擔心性能和/或使用,而非列表迭代器,考慮itertools.izip
而不是zip
。
在Python 3.x中,zip
取代了itertools.izip
;使用list(zip(..))
來獲取舊的(2.x)zip
行爲返回一個列表。
說明:'zip'從其參數中創建一個元組列表。 – katrielalex
import itertools
for a, b in itertools.izip(list_a, list_b):
# ...
如果你想要的是嵌套循環,而不是同時循環,使用'itertools.product'。如果list只是另一個的索引,則使用'enumerate'。 – agf
有用的工具,謝謝。這是我得到的獎金。 :-) – xiaohan2012