indices = xrange(sys.maxint)
for item, index in zip(sequence, indices):
something(item, index)
# same semantics as:
for index in range(len(sequence)):
something(sequence[index], index)
# but the change-of-emphasis allows greater
# clarity in some usage contexts.
# Further alternatives exist of course:
class Indexed:
def __init__(self, seq):
self.seq = seq
def __getitem__(self, i):
return self.seq[i], i
for item, index in Indexed(sequence):
something(item, index)
# or equivalently:
def Indexed(sequence):
return zip(sequence, indices)