Объединить перечислить + itertools.izip в Python - PullRequest
3 голосов
/ 18 августа 2011

Я хотел бы повторить + перечислить два списка в Python. Следующий код выглядит безобразно. Есть ли лучшее решение?

for id, elements in enumerate(itertools.izip(as, bs)):
  a = elements[0]
  b = elements[1]
  # do something with id, a and b

Спасибо.

Ответы [ 2 ]

15 голосов
/ 18 августа 2011

Вы можете назначить a и b во время цикла for:

for id, (a, b) in enumerate(itertools.izip(as, bs)):
  # do something with id, a and b
11 голосов
/ 18 августа 2011

Вы можете использовать itertools.count вместо enumerate:

for id_, a, b in itertools.izip(itertools.count(), as_, bs):
  # do something with id_, a and b

Обратите внимание, что я немного изменил имена переменных, чтобы избежать зарезервированного слова и имени встроенного.

...