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 2015-03-31 12:46:59
你是什么意思*“它是如何工作的”*?你想知道[它做了什么](https://docs.python.org/2/library/functions.html#enumerate)? [它如何实现](https://hg.python.org/cpython/file/ec6c812fbc1f/Objects/enumobject.c),...?这与'zip(范围(len(items)),items)'一样简单。 – jonrsharpe 2015-03-31 12:50:12
你有什么困难? – 2015-03-31 12:53:15