Вот питонский способ написать этот цикл:
for index, obj in enumerate(objects):
# Use index, obj.
enumerate
работает на любой последовательности независимо от типов ее элементов. Это встроенная функция.
Edit:
После выполнения некоторых timeit
тестов с использованием Python 2.5 я обнаружил, что enumerate
немного медленнее:
>>> timeit.Timer('for i in xrange(len(seq)): x = i + seq[i]', 'seq = range(100)').timeit()
10.322299003601074
>>> timeit.Timer('for i, e in enumerate(seq): x = i + e', 'seq = range(100)').timeit()
11.850601196289062