Začněte nyníZačněte zdarma

Procvičujeme vestavěné funkce: enumerate()

V tomto cvičení si procvičíš práci s vestavěnou funkcí Pythonu enumerate(). Tato funkce se hodí, když potřebuješ seznam s indexy. Představ si například seznam hostů, kteří přišli na tvou párty, seřazený podle příchodu (Jerry přišel jako první, po něm Kramer atd.):

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

Pokud bys chtěl/a ke každé osobě přiřadit index odpovídající pořadí příchodu, mohl/a bys použít následující for cyklus:

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')]

To ale není nejefektivnější řešení. Pojďme se podívat, jak to samé zvládnout elegantněji pomocí enumerate().

Toto cvičení je součástí kurzu

Psaní efektivního kódu v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Místo for i in range(len(names)) uprav for cyklus tak, aby používal i jako indexovou proměnnou, name jako iterační proměnnou a funkci enumerate().
  • Přepiš předchozí for cyklus pomocí enumerate() a list comprehension a vytvoř nový seznam indexed_names_comp.
  • Vytvoř další seznam (indexed_names_unpack) pomocí hvězdičky (*) pro rozbalení enumerate objektu vzniklého z enumerate() aplikovaného na names. Tentokrát nastav počáteční index funkce enumerate() na jedničku místo nuly.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód