Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 枚举函数是如何工作的?_Python_Enumeration_Enumerate - Fatal编程技术网

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