enumerate & zip
Applies to: python
enumerate yields (index, value) pairs so you can loop with a counter cleanly; zip pairs up several
iterables element by element. Both avoid manual index bookkeeping.
for i, v in enumerate(items): # i = index, v = value
...
for name, age in zip(names, ages): # pair two lists
...