我试图通过列举前一个列表来创建一个新的索引列表。基本上,我想要的是:
枚举元素列表以获取每个元素的索引。我编码了这个:
board = ["O","O","O","O","O"]
for index,y in enumerate(board):
print(index,end=" ")
给出:
0 1 2 3 4
我现在想把这些数字变成一个新的列表,但不知道如何做到这一点。
谢谢!对不起,这个问题,我还是一个初学者,我只是想弄清楚事情。
答案 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)]