2012-11-23 59 views
0

當我同時循環使用zip函數的多個python列表時,我也想檢索循環索引。爲此,對於循環指數的單獨列表可以包含在壓縮功能,例如:如何使用Python zip函數獲取循環索引?

for index, item1, item2 in zip(range(len(list1)), list1, list2): 
    <do something> 

是否有更好的方法來做到這一點(比如在enumerate - 功能)?

回答

3

可以解壓在for一切:

>>> for i, (x1, x2) in enumerate(zip([1,2,3], [3,4,5])): 
...  print i, x1, x2 
... 
0 1 3 
1 2 4 
2 3 5 
+0

啊,謝謝,我不知道'enumerate'和'zip'實際上可以結合起來實現這一點! –

4

您可以使用enumerate()這(注意for後面的括號中的位置,以解開嵌套的元組):

>>> l1 = range(0, 10) 
>>> l2 = range(10, 20) 
>>> for index, (item1, item2) in enumerate(zip(l1, l2)): 
... print index, item1, item2 
... 
0 0 10 
1 1 11 
2 2 12 
3 3 13 
4 4 14 
5 5 15 
6 6 16 
7 7 17 
8 8 18 
9 9 19 
+0

也感謝你,看到不同的資源提供相同的解決方案總是讓人放心! :-) –