Zugriff auf den Index in 'for' Schleifen?

Wie kann ich auf den Index in einer "for"-Schleife wie der folgenden zugreifen?

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

Ich möchte diese Ausgabe erhalten:

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

Wie greife ich auf den Schleifenindex zu, der in diesem Fall von 1 bis 5 reicht, wenn ich ihn mit einer "for"-Schleife durchlaufe?

Lösung

Die Verwendung einer zusätzlichen Zustandsvariablen, wie z. B. einer Indexvariablen (die Sie normalerweise in Sprachen wie C oder PHP verwenden würden), wird als nicht-pythonisch angesehen.

Die bessere Option ist die Verwendung der eingebauten Funktion enumerate(), die sowohl in Python 2 als auch in 3 verfügbar ist:

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

Schauen Sie sich PEP 279 für mehr an.

Kommentare (2)
for i in range(len(ints)):
   print i, ints[i]
Kommentare (7)

Auf altmodische Weise:

for ix in range(len(ints)):
    print ints[ix]

Verständnis der Liste:

[ (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)
>>> 
Kommentare (3)