Несколько счетчиков в одном для цикла: Python
Возможно ли в Python запустить несколько счетчиков в одном цикле для цикла, как в C/С++?
Я хотел бы что-то вроде - for i,j in x,range(0,len(x)):
Я знаю, что Python интерпретирует это по-другому и почему, но как бы я мог запускать два счетчика циклов одновременно в одном цикле for?
Ответы
Ответ 1
Вы хотите zip
в целом, который объединяет два итератора, как говорит @S.Mark. Но в этом случае enumerate
делает именно то, что вам нужно, а это означает, что вам не нужно напрямую использовать range
:
for j, i in enumerate(x):
Обратите внимание, что это сначала дает индекс x
, поэтому я изменил значение j, i
.
Ответ 2
Возможно, вы захотите использовать 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 - это общая опция, чтобы иметь несколько элементов в одном цикле
Ответ 3
for i,j in enumerate(x)