enumerate и zip простыми словами
Две удобные функции, которые делают циклы чище: одна добавляет нумерацию, другая идёт по двум спискам сразу.
enumerate: номер + элемент
Иногда в цикле нужен не только элемент, но и его порядковый номер. enumerate() выдаёт пары «индекс, элемент», избавляя от возни со счётчиком вручную.
for i, name in enumerate(['Аня', 'Ваня']):
print(i, name) # 0 Аня / 1 Ваня
zip: два списка вместе
zip() объединяет несколько списков поэлементно: берёт первый элемент из каждого, потом второй и так далее. Удобно, когда данные лежат в параллельных списках.
names = ['Аня', 'Ваня']
points = [5, 4]
for n, p in zip(names, points):
print(n, p) # Аня 5 / Ваня 4
Зачем они нужны
Эти функции делают код короче и понятнее, убирая ручную работу с индексами. Как только освоите базовый for, enumerate и zip станут вашими частыми помощниками в реальных задачах.
Частые вопросы
Можно ли задать enumerate старт не с нуля? Да: enumerate(список, 1) начнёт с 1.
Что если списки в zip разной длины? zip остановится на самом коротком.
Начать игру бесплатно