Python中是否可以像C/C++一樣在單個for循環中運行多個計數器?單個for循環中的多個計數器:Python
我想要的東西 - for i,j in x,range(0,len(x)):
我知道Python解釋這個不同的原因,但爲什麼,但我怎麼會在一個for循環中同時運行兩個循環計數器?
Python中是否可以像C/C++一樣在單個for循環中運行多個計數器?單個for循環中的多個計數器:Python
我想要的東西 - for i,j in x,range(0,len(x)):
我知道Python解釋這個不同的原因,但爲什麼,但我怎麼會在一個for循環中同時運行兩個循環計數器?
您可能需要使用zip
for i,j in zip(x,range(0,len(x))):
例,
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> print zipped
[(1, 4), (2, 5), (3, 6)]
>>> for a,b in zipped:
... print a,b
...
1 4
2 5
3 6
>>>
注意:對於這個問題的正確答案是enumerate
其他提到的,拉鍊是有多個項目一般選項在單個循環中
是zip'好,但在這種特殊情況下,「枚舉」是執行原始海報所需的常用方式。 – EOL 2010-04-20 08:10:24
您想要zip
一般whi ch結合了兩個迭代器,正如@ S.Mark所說。但是,在這種情況下enumerate
不正是你所需要的,這意味着你不必直接使用range
:
for j, i in enumerate(x):
注意,這首先給出的x
指數,所以我逆轉j, i
。
for i,j in enumerate(x)
除了(因爲你可能不想用它,在這種情況下):'範圍(0,LEN(X))==範圍(LEN(X))'' – 2010-04-20 06:23:38