DevGang
Авторизоваться

Python Enumerate - пример Python Enum для индекса цикла 

Когда вы кодируете на Python, вы можете использовать функцию enumerate() и for loop чтобы распечатать каждое значение итерации со счетчиком.

В этой статье я покажу вам, как использовать Python функцию enumerate() с for loop и объясню, почему это лучший вариант, чем создание собственного счетчика приращения.

Но сначала давайте посмотрим, как этого добиться без функции enumerate().

Как использовать for loop без функции enumerate() в Python

В Python итерируемый объект - это объект, в котором вы можете выполнять итерацию и возвращать по одному значению за раз. Примеры итераций включают списки, кортежи и строки.

В этом примере у нас есть список имен собак и переменная с именем count.

dogs = ['Harley', 'Phantom', 'Lucky', 'Dingo']
count = 1

Мы можем использовать for loop чтобы просмотреть список и распечатать каждое имя. Мы также собираемся увеличивать переменную count на 1 каждый раз, чтобы отслеживать, сколько раз мы перебирали список.

for name in dogs:
    print(count, name)
    count += 1

Вот как будет выглядеть результат на экране:

Хотя этот подход действительно работает, он представляет собой возможную ошибку.

Распространенной ошибкой было бы забыть увеличить значение переменной count.

Если бы я изменил код, в консоли был бы напечатан новый результат:

dogs = ['Harley', 'Phantom', 'Lucky', 'Dingo']
count = 1
for name in dogs:
    print(count, name)

Теперь переменная count больше не отслеживает точно, сколько раз мы просматривали список в цикле.

Вместо того, чтобы увеличивать переменную count самостоятельно, мы можем использовать функцию enumerate() с расширением for loop.

Функция enumerate() в Python

Встроенная функция enumerate() принимает итерируемый объект и необязательный начальный аргумент.

enumerate(iterable, optional start argument)

Если вы опустите необязательный аргумент start, счет будет равен нулю.

Возвращаемое значение функции enumerate() - объект.

Эта функция отслеживает итерации, поэтому вам не нужно помнить об обновлении переменной count.

Мы можем использовать функцию enumerate() с for loop чтобы распечатать значения итерации со счетчиком.

Как использовать for loop и функцию enumerate() в Python

В этом примере мы хотим распечатать список направлений, ведущих от Таймс-сквер до Джульярдской музыкальной школы в Нью-Йорке, штат Нью-Йорк.

Сначала нам нужно создать список directions:

directions = [
    'Head north on Broadway toward W 48th St',
    'Turn left onto W 58th St',
    'Turn right onto 8th Ave',
    'Turn left onto Broadway',
    'Turn left onto Lincoln Center Plaza',
    'Turn right onto Jaffe Dr',
    'Turn left onto Broadway',
    'Turn left onto W 65th St'
]

Функция enumerate() будет принимать аргументы directions и start. Мы хотим начать отсчет с 1 вместо 0 по умолчанию.

for count, direction in enumerate(directions, start=1):

Внутри цикла мы распечатаем переменные цикла count и direction.

print(count, direction)

Вот как выглядит все вместе:

directions = [
    'Head north on Broadway toward W 48th St',
    'Turn left onto W 58th St',
    'Turn right onto 8th Ave',
    'Turn left onto Broadway',
    'Turn left onto Lincoln Center Plaza',
    'Turn right onto Jaffe Dr',
    'Turn left onto Broadway',
    'Turn left onto W 65th St'
]

for count, direction in enumerate(directions, start=1):
    print(count, direction)

Вот как выглядят результаты в консоли:

Как видите, переменная count была автоматически обновлена функцией enumerate().

Это исключает возможность ошибок, если мы забудем увеличить значение переменной count.

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

В подарок 100$ на счет при регистрации

Получить