Все в Python существует не просто так. Все системы на базе Python зависят от примерно 50 встроенных функций, большинство из которых чрезвычайно полезны и уникальны , например format()
, len()
, list()
или range()
. Я не могу понять, почему enumerate()
существует .
Он был представлен в PEP 279 (2002) и сохранился до сих пор. Я действительно не понимаю, почему он существует, потому что это можно сделать, используя другие более важные встроенные функции, еще на 2-3 символа. Из Python Документов :
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
for i in enumerate(seasons):
print(i)
Реализация с использованием более важных встроенных функций следующая:
for i in zip(range(len(seasons)), seasons):
print(i)
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
Эти два одинаковы, и все мы знаем, насколько критически важны zip()
и range()
. Так зачем добавлять встроенную функцию, которая, казалось бы, не добавляла бы никакого значения, кроме этих двух?
В Python Документах , вот эквивалент enumerate()
:
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
Итог : мне интересно, обладает ли enumerate()
некоторыми уникальными возможностями, которых я не вижу.