Я использую его везде, где может быть двусмысленность (очевидно). Не только двусмысленность компилятора (в этом случае это потребуется), но и двусмысленность для кого-то, кто смотрит на код.
Используя дополнительную переменную состояния, такую как индексная переменная (который Вы обычно использовали бы на языках, таких как C или PHP), считается non-pythonic.
более оптимальный вариант состоит в том, чтобы использовать встроенную функцию enumerate()
, доступный в обоих Python 2 и 3:
for idx, val in enumerate(ints):
print(idx, val)
Выезд PEP 279 для больше.
Старомодный путь:
for ix in range(len(ints)):
print ints[ix]
понимание Списка:
[ (ix, ints[ix]) for ix in range(len(ints))]
>>> ints
[1, 2, 3, 4, 5]
>>> for ix in range(len(ints)): print ints[ix]
...
1
2
3
4
5
>>> [ (ix, ints[ix]) for ix in range(len(ints))]
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
>>> lc = [ (ix, ints[ix]) for ix in range(len(ints))]
>>> for tup in lc:
... print tup
...
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
>>>
for i in range(len(ints)):
print i, ints[i]