Функция enumerate в python

enumerate() - функция, принимающая на вход коллекцию, и возвращающая итератор, значениями которого будут кортежи пар вида (номер элемента, значение элемента из коллекции). Применяется для прохода непосредственно по значениям коллекции, при этом предоставляется информация о номере каждого элемента.

enumerate() возвращает объект enumerate:

>>> enum_obj = enumerate("ABC")
>>> enum_obj
<enumerate object at 0x7f4e5542f0b0>

Примеры

>>> for pair in enumerate("ABC"):
		print(pair)
 
(0, 'A')
(1, 'B')
(2, 'C')
 
>>> for index, value in enumerate("ABC"):
		print(index, value)
 
0 A
1 B
2 C
 
>>> for index, value in enumerate("ABC", 0):
		print(index, value)
 
0 A
1 B
2 C
 
>>> for index, value in enumerate("ABC", 1):
		print(index, value)
 
1 A
2 B
3 C
 
>>> for index, value in enumerate(['one', 'two', 'three'], 1):
		print(value, index)
 
one 1
two 2
three 3
 
>>> for index, letter in enumerate("so~mec~od~e"):
		if letter == '~':
			print(index, letter)
 
2 ~
6 ~
9 ~

То есть вместо такого кода:

>>> scores = [54, 43, 23, 12, 67]
>>> for i_player in range(len(scores)):
		print(i_player, scores[i_player])
 
0 54
1 43
2 23
3 12
4 67

нужно юзать такой:

>>> for index, value in enumerate(scores, 1):
		print(index, value)
 
1 54
2 43
3 23
4 12
5 67

Creating dict from enumerate:

# Создайте два списка, в каждом из которых лежит 10 случайных букв алфавита
# (могут повторяться). Затем для каждого списка создайте словарь из пар
# «индекс - значение» и выведите оба словаря на экран.
# Пример:
['й', 'р', 'с', 'г', 'а', 'а', 'т', 'ж', 'е', 'к']
{0: 'й', 1: 'р', 2: 'с', 3: 'г', 4: 'а', 5: 'а', 6: 'т', 7: 'ж', 8: 'е', 9: 'к'}
 
# Решение:
>>> import random, string
>>> list1 = [random.choice(string.ascii_lowercase) for x in range(10)]
>>> list1
['v', 'z', 'q', 'j', 'n', 'd', 'q', 'i', 'x', 'f']
>>> dict((letter, index) for letter, index in enumerate(list2))
{0: 'm', 1: 'u', 2: 'f', 3: 'w', 4: 'h', 5: 'y', 6: 'a', 7: 'l', 8: 'm', 9: 'e'}
 
# Соус решения: https://stackoverflow.com/questions/30683950/create-python-dictionary-by-enumerate-function

python