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

Как мне получить доступ к индексу в цикле for, как показано ниже?

ints = [8, 23, 45, 12, 78]
for i in ints:
    print('item #{} = {}'.format(???, i))

Я хочу получить этот вывод:

item #1 = 8
item #2 = 23
item #3 = 45
item #4 = 12
item #5 = 78

Когда я перебираю его, используя цикл for, как мне получить доступ к индексу цикла, от 1 до 5 в этом случае?

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

0 ответов

Используя дополнительную переменную состояния, такую как индексная переменная (который Вы обычно использовали бы на языках, таких как 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
поделиться
Другие вопросы по тегам:

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