1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wydajny kod w Pythonie

Connected

ćwiczenie

Wbudowane funkcje w praktyce: enumerate()

W tym ćwiczeniu przećwiczysz użycie wbudowanej funkcji Pythona enumerate(). Przydaje się ona do tworzenia list z indeksami. Wyobraź sobie, że masz listę gości przybyłych na przyjęcie – posortowaną według kolejności przybycia (Jerry przyszedł pierwszy, potem Kramer itd.):

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

Aby przypisać każdej osobie indeks odpowiadający kolejności przybycia, można użyć następującej pętli for:

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 jednak niezbyt wydajne rozwiązanie. Sprawdźmy, jak użyć enumerate(), żeby zrobić to efektywniej.

Instrukcje

100 XP
  • Zamiast for i in range(len(names)), zaktualizuj pętlę for tak, aby używała i jako zmiennej indeksowej i name jako zmiennej iteratora – skorzystaj przy tym z enumerate().
  • Przepisz poprzednią pętlę for, używając enumerate() i wyrażenia listowego, aby utworzyć nową listę indexed_names_comp.
  • Utwórz kolejną listę (indexed_names_unpack), używając gwiazdki (*) do rozpakowania obiektu enumerate powstałego z wywołania enumerate() na names. Tym razem ustaw indeks początkowy enumerate() na jeden zamiast zero.