все Python 3Списки (list)понятие
enumerate() со списком
итерация
enumerate() возвращает пары (индекс, элемент). start= задаёт начальный индекс.
Синтаксис
enumerate(lst[, start=0])
enumerate() ленив: это итератор, а не список, поэтому печать самого объекта покажет <enumerate object ...>, а второй проход по нему уже ничего не даст — оборачивайте в list(), если пары нужны целиком. Аргумент start= сдвигает только счётчик, элементы остаются на местах: после enumerate(lst, 1) число i больше не годится как индекс для lst[i].
Примеры
lst = ['a', 'b', 'c']
for i, v in enumerate(lst):
print(i, v) # → 0 a / 1 b / 2 c
for i, v in enumerate(lst, start=1):
print(i, v) # → 1 a / 2 b / 3 c
print(list(enumerate(['x', 'y', 'z']))) # → [(0, 'x'), (1, 'y'), (2, 'z')]
words = ['zero', 'one', 'two']
print({i: w for i, w in enumerate(words)}) # → {0: 'zero', 1: 'one', 2: 'two'}
# Индекс максимального элемента
lst = [10, 30, 20]
print(max(enumerate(lst), key=lambda x: x[1])) # → (1, 30)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности