Erste SchritteKostenlos loslegen

Eingebaute Praxis: enumerate()

In dieser Übung übst du den Umgang mit der in Python eingebauten Funktion enumerate(). Diese Funktion ist nützlich, um eine indizierte Liste zu erhalten. Angenommen, du hast eine Liste mit Leuten, die zu einer Party kommen, die du veranstaltest. Die Liste ist nach Ankunft geordnet (Jerry kam als Erster an, gefolgt von Kramer, usw.):

names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']

Wenn du einen Index anhängen möchtest, der die Ankunftsreihenfolge einer Person darstellt, könntest du die folgende for-Schleife verwenden:

indexed_names = []
for i in range(len(names)):

    index_name = (i, names[i])

    indexed_names.append(index_name)


[(0,'Jerry'),(1,'Kramer'),(2,'Elaine'),(3,'George'),(4,'Newman')]

Aber das ist nicht die effizienteste Lösung. Wir wollen herausfinden, wie wir enumerate() nutzen können, um dies effizienter zu machen.

Diese Übung ist Teil des Kurses

Effizienten Python-Code schreiben

Kurs anzeigen

Anleitung zur Übung

  • Anstatt for i in range(len(names)) zu verwenden, aktualisiere die for-Schleife, um i als Indexvariable und name als Iteratorvariable zu verwenden, und benutze enumerate().
  • Schreibe die vorherige for-Schleife mit enumerate() und Listenverständnis um, um eine neue Liste zu erstellen, indexed_names_comp.
  • Erstelle eine weitere Liste (indexed_names_unpack), indem du das Sternzeichen (*) verwendest, um das Aufzählungsobjekt, das du mit enumerate() erstellt hast, auf names auszupacken. Beginne den Index für enumerate() dieses Mal bei eins statt bei null.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# Rewrite the for loop to use enumerate
indexed_names = []
for ____,_____ in ____(names):
    index_name = (i,name)
    indexed_names.append(index_name) 
print(indexed_names)

# Rewrite the above for loop using list comprehension
indexed_names_comp = [(____,____) for i,name in ____(names)]
print(indexed_names_comp)

# Unpack an enumerate object with a starting index of one
indexed_names_unpack = [____(names, ____)]
print(indexed_names_unpack)
Bearbeiten und Ausführen von Code