我想在Python中遍歷+列舉兩個列表。下面的代碼看起來很醜。有沒有更好的解決方案?在Python中結合枚舉+ itertools.izip
for id, elements in enumerate(itertools.izip(as, bs)):
a = elements[0]
b = elements[1]
# do something with id, a and b
謝謝。
我想在Python中遍歷+列舉兩個列表。下面的代碼看起來很醜。有沒有更好的解決方案?在Python中結合枚舉+ itertools.izip
for id, elements in enumerate(itertools.izip(as, bs)):
a = elements[0]
b = elements[1]
# do something with id, a and b
謝謝。
您可以在for循環分配和b:
for id, (a, b) in enumerate(itertools.izip(as, bs)):
# do something with id, a and b
你可以使用itertools.count
代替enumerate
:
for id_, a, b in itertools.izip(itertools.count(), as_, bs):
# do something with id_, a and b
請注意,我已經改變了變量名稍微避免保留字和內建的名稱。
根據PEP-8對變量名進行了很好的改變,使用'enumerate'上的itertools.count'實際上並沒有改進。 – jamylak
恕我直言,這是一個改進,因爲你可以使用itertools.izip(itertools.count(),as_,bs)'experssion作爲'multiprocessing.pool.map_async()'的參數,這對於for循環。 – user1898037
哦,相當不錯,很簡單。 –
你可以相信Python有一個不錯的和簡單的解決方案:)。 –