Python Glossary English

все 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Сообщить о неточности