Функция enumerate в python
enumerate()
- функция, принимающая на вход коллекцию , и возвращающая итератор , значениями которого будут кортежи пар вида (номер элемента, значение элемента из коллекции)
. Применяется для прохода непосредственно по значениям коллекции, при этом предоставляется информация о номере каждого элемента .
enumerate()
возвращает объект enumerate :
>>> enum_obj = enumerate ( "ABC" )
>>> enum_obj
< enumerate object at 0x 7f4e5542f0b0 >
Примеры
>>> 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