Python 枚举函数是如何工作的?
我应该做以下几件事: 定义一个函数Python 枚举函数是如何工作的?,python,enumeration,enumerate,Python,Enumeration,Enumerate,我应该做以下几件事: 定义一个函数my_enumerate(items),该函数的行为方式与内置的enumerate函数类似。它应该返回一个成对的列表(i,item),其中item是i第个项,列表项的0原点(参见下面的示例)。检查测试用例,了解该函数应该如何工作。您的函数不能调用Python内置的enumerate函数 示例: 输入: ans = my_enumerate([10, 20, 30]) print(ans) 输出: [(0, 10), (1, 20), (2, 30)] 使用和
my_enumerate(items)
,该函数的行为方式与内置的enumerate
函数类似。它应该返回一个成对的列表(i,item)
,其中item
是i
第个项,列表项的0
原点(参见下面的示例)。检查测试用例,了解该函数应该如何工作。您的函数不能调用Python内置的enumerate
函数
示例:
输入:
ans = my_enumerate([10, 20, 30])
print(ans)
输出:
[(0, 10), (1, 20), (2, 30)]
使用和:
枚举
做什么?试着用英语表达,它可能会帮助你理解如何编写必要的代码。如果没有,那么将英语描述学习成代码的实践将是有用的
描述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
是否有其他方法可以编写产生相同输出的代码?对这是编写此函数的最佳方式吗?不可能。这个练习应该帮助你将思想转化为代码,当你获得更多的经验时,你可以一次组合多个步骤,并开始使用更复杂的编程概念。如果你要这么做,为什么要在这里问?你说的“它是如何工作的”是什么意思?你想知道吗。。。?这就像zip(range(len(items)),items)
一样简单。你有什么困难吗?我不知道如何实际编码。我知道枚举函数做了什么,也知道我必须编码什么,但实际上编码起来很困难。你必须写一些不起作用的东西,然后改进它。如果您尽可能多地编写代码,然后就无法工作的部分提出问题,您会做得更好。list()
是不必要的(在Python 2中)。
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