ПочатиПочніть безкоштовно

Практика з вбудованими: enumerate()

У цій вправі ви попрактикуєтеся у використанні вбудованої функції Python enumerate(). Ця функція зручна, коли потрібно отримати список з індексами. Припустімо, у вас є список людей, які прийшли на вечірку, яку ви проводите. Список впорядковано за часом прибуття (Джеррі прийшов першим, потім Креймер тощо):

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

Якщо ви хочете додати індекс, що відповідає порядку прибуття людини, ви можете використати такий цикл 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')]

Однак це не найефективніше рішення. Розгляньмо, як використати enumerate(), щоб зробити це ефективніше.

Ця вправа є частиною курсу

Ефективне написання коду Python

Переглянути курс

Інструкції до вправи

  • Замість for i in range(len(names)) змініть цикл for так, щоб використовувати i як індекс і name як змінну-ітератор та застосувати enumerate().
  • Перепишіть попередній цикл for, використавши enumerate() і list comprehension, щоб створити новий список indexed_names_comp.
  • Створіть ще один список (indexed_names_unpack), використавши зірочку (*) для розпакування об'єкта enumerate, створеного викликом enumerate() для names. Цього разу почніть індекс у enumerate() з одиниці, а не з нуля.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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)
Редагувати та запускати код