枚举列表以制作新的索引列表?

时间:2016-06-05 17:19:55

标签: python enumerate

我试图通过列举前一个列表来创建一个新的索引列表。基本上,我想要的是:

枚举元素列表以获取每个元素的索引。我编码了这个:

board = ["O","O","O","O","O"]
for index,y in enumerate(board):
    print(index,end=" ")

给出:

0 1 2 3 4

我现在想把这些数字变成一个新的列表,但不知道如何做到这一点。

谢谢!对不起,这个问题,我还是一个初学者,我只是想弄清楚事情。

6 个答案:

答案 0 :(得分:1)

你应该只做一个正确的长度范围:

QString

答案 1 :(得分:1)

使用列表理解:

indices = [index for index, y in enumerate(board)]

如果board始终是实现__len__ - 方法的对象,您还可以使用range

indices = list(range(len(board)))

答案 2 :(得分:0)

如果您只想要所有数字,可以使用:

board = ["O","O","O","O","O"]
indices = list(range(len(board)))
print(indices)
> [0, 1, 2, 3, 4]

如果将一个数字传递给范围,它将返回一个迭代器,其数字为0,直到传递的数字(不包括)。在此之后,我们将其变为带有列表功能的列表。

答案 3 :(得分:0)

你可以使用list comprehension来做到这一点:

indices = list(range(len(board)))

或者,您可以使用result = [index for index,y in enumerate(board)] 功能:

range

答案 4 :(得分:0)

我会使用numpy arange,它创建一个看起来像你正在寻找的数组: Numpy Arange

import numpy as np

enumerated = np.arange(len(board))

答案 5 :(得分:0)

直截了当的方式是:

board = ["O","O","O","O","O"]
newlist = []
for index,y in enumerate(board):
    newlist.append(index)

使用列表推导的更高级方法是:

newlist = [index for index, value in enumerate(board)]