Что делает enumerate
? Попробуйте выразить это на английском языке, и это может помочь вам понять, как написать необходимый код. Если этого не произойдет, практика изучения описаний английского языка в коде будет полезна.
Один из способов описания enumerate
состоит в том, чтобы сказать, что он выполняет итерацию по каждому элементу в списке, и для каждого элемента в списке ввода он создает пару индекса элемента в списке ввода и в элементе.
Итак, мы знаем, что мы должны пройти по списку:
for item in input_list:
pass
И мы должны следить за индексом текущего элемента .:
index = 0
for item in input_list:
index += 1
Хм, есть лучший способ делать что:
for index in range(len(input_list)):
pass
Теперь производить пар:
for index in range(len(input_list)):
pair = index, input_list[index]
Кроме того, необходимо где-то хранить эти пары:
def my_enumerate(input_list):
output_list = []
for index in range(len(input_list)):
pair = index, input_list[index]
output_list.append(pair)
return output_list
Есть ли другие пути, чтобы написать код, который производит такой же вывод? Да. Это лучший способ написать эту функцию? Отнюдь не. То, что это упражнение должно помочь вам, превращает ваши мысли в код, поскольку вы получаете больше опыта в этом, тогда вы можете объединить несколько шагов за раз и начать использовать более сложные концепции программирования.
Если вы должны это сделать, зачем спрашивать здесь? – RemcoGerlich
Что вы имеете в виду * «как [работает]» *? Вы хотите знать [что это делает] (https://docs.python.org/2/library/functions.html#enumerate)? [Как это реализовано] (https://hg.python.org/cpython/file/ec6c812fbc1f/Objects/enumobject.c), ...? Это так же просто, как 'zip (диапазон (len (items)), items)'. – jonrsharpe
С чем вы сталкиваетесь? –