1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Psaní efektivního kódu v Pythonu

Connected

cvičení

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().

Pokyny

100 XP
  • 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.