Доступ к индексу в циклах for?

Я использую его везде, где может быть двусмысленность (очевидно). Не только двусмысленность компилятора (в этом случае это потребуется), но и двусмысленность для кого-то, кто смотрит на код.

3244
задан Aaron Hall 20 September 2019 в 22:19
поделиться

3 ответа

Используя дополнительную переменную состояния, такую как индексная переменная (который Вы обычно использовали бы на языках, таких как C или PHP), считается non-pythonic.

более оптимальный вариант состоит в том, чтобы использовать встроенную функцию enumerate() , доступный в обоих Python 2 и 3:

for idx, val in enumerate(ints):
    print(idx, val)

Выезд PEP 279 для больше.

5546
ответ дан Peter Mortensen 20 September 2019 в 22:19
поделиться
  • 1
    Это также важно в среде мультиразработчика, где, например, добавляет Eric в " baz, " и затем George добавляет в " бум, ". если Eric решает вытащить свой код для следующей сборки проекта, он все еще компилирует с George' s изменение. Очень важный для многоотраслевого управления исходным кодом и перекрывающий графики разработки. – Harold Bamford 30 June 2009 в 21:50

Старомодный путь:

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)
>>> 
24
ответ дан Charlie Martin 20 September 2019 в 22:19
поделиться
for i in range(len(ints)):
   print i, ints[i]
85
ответ дан David Hanak 20 September 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: