我应该做以下事情:
定义一个函数
my_enumerate(items)
,其行为方式与内置enumerate
函数类似。它应该返回一对(i, item)
对的列表,其中item
是列表i
的{{1}}项,0
来源(参见下面的示例) 。检查测试用例以了解该功能应如何工作。您的函数不能调用Python的内置items
函数。示例:
输入:
enumerate
输出:
ans = my_enumerate([10, 20, 30]) print(ans)
答案 0 :(得分:2)
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
是否有其他方法可以编写产生相同输出的代码?是。这是编写此功能的最佳方式吗?不是由一个长镜头。这个练习应该帮助你的是将你的想法变成代码,当你获得更多的经验时,你可以一次组合多个步骤,并开始使用更复杂的编程概念。
答案 1 :(得分:1)
from itertools import count
def my_enumerate(values):
return list(zip(count(), values))