Несколько счетчиков в одном цикле for: Python - PullRequest
19 голосов
/ 20 апреля 2010

Возможно ли в Python запустить несколько счетчиков в одном цикле for, как в C / C ++?

Я бы хотел что-то вроде - for i,j in x,range(0,len(x)): Я знаю, что Python интерпретирует это по-разному и почему, но как мне запустить два счетчика цикла одновременно в одном цикле for?

Ответы [ 3 ]

30 голосов
/ 20 апреля 2010

Вы хотите zip в целом, который объединяет два итератора, как говорит @ S.Mark. Но в этом случае enumerate делает именно то, что вам нужно, что означает, что вам не нужно использовать range напрямую:

for j, i in enumerate(x):

Обратите внимание, что это сначала дает индекс x, поэтому я перевернул j, i.

20 голосов
/ 20 апреля 2010

Возможно, вы захотите использовать 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 - это общий вариант, когда несколько элементов в одном цикле

5 голосов
/ 20 апреля 2010
for i,j in enumerate(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...