Combine enumerate + itertools.izip in Python
Question
I would like to iterate + enumerate over two lists in Python. The following code looks ugly. Is there any better solution?
for id, elements in enumerate(itertools.izip(as, bs)):
a = elements[0]
b = elements[1]
# do something with id, a and b
Thank you.
Solution
You can assign a and b during the for loop:
for id, (a, b) in enumerate(itertools.izip(as, bs)):
# do something with id, a and b
OTHER TIPS
You could use itertools.count
instead of enumerate
:
for id_, a, b in itertools.izip(itertools.count(), as_, bs):
# do something with id_, a and b
Note that I've changed the variable names slightly to avoid a reserved word and the name of a builtin.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow