Index in for-Schleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
brubb
User
Beiträge: 5
Registriert: Sonntag 4. Mai 2008, 12:46

Hallo,

wenn man in einer for-Schleife auch den Index zum aktuellen Element braucht, welche Variante ist dann besser?

Variante 1:

Code: Alles auswählen

a = 'cat', 'mouse', 'dog'
for index, animal in enumerate(a):
    print(index, ':', animal)
Variante 2:

Code: Alles auswählen

a = 'cat', 'mouse', 'dog'
for index in range(len(a)):
    print(index, ':', a[index])
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Was soll die Frage? Was ist besser für dich? Also ich nehme enumerate(). Schneller und einfacher.
TUFKAB – the user formerly known as blackbird
BlackJack

IMHO `enumerate()`, da einfacher da nur eine Funktion im Gegensatz zu ``xrange(len(obj))``. Man spart Indexzugriffe und gibt dem Objekt (hoffentlich) auch einen sprechenden Namen.
brubb
User
Beiträge: 5
Registriert: Sonntag 4. Mai 2008, 12:46

mitsuhiko hat geschrieben:Was soll die Frage?
Bitte? Ich dachte in Python gilt Beautiful is better than ugly. Von daher ist ja wohl die Frage nach dem schöneren Weg berechtigt.
Übrigens: Toller Ton für eine Antwort, die einem Anfänger helfen soll. :?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

brubb hat geschrieben:
mitsuhiko hat geschrieben:Was soll die Frage?
Bitte? Ich dachte in Python gilt Beautiful is better than ugly. Von daher ist ja wohl die Frage nach dem schöneren Weg berechtigt.
Ich glaube mitsuhiko ging es darum, dass es ziemlich offensichtlich ist was hübscher ist. Auch wenn das unfreundlich rübergekommen ist ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Offensichtlich? 'Beauty lies in the eye of the beerholder', oder so ähnlich. ;-)

@brubb: Verwendest Du etwa eine Alpha-Version von Python 3.0? Den für die meisten Leute ist ``print`` im alltäglichen Gebrauch noch keine Funktion.
Antworten