我有一个列表是
a = [100,200,200,400,500,600,600,700,900,1000,400,200,500]
如果我尝试使用以下方法在“ a”中查找值的索引:
xlist=[]
for value in a:
x = np.array(a.index(value), value)
xlist.append(x)
print(xlist)
它给了我
xlist = [0,1,1,3,4,5,5,7,8,9,9,3,1,4]
相反,我想要一个列表,该列表也为每个重复值提供唯一索引。像这样:
xlist = [0,1,2,3,4,5,6,7,8,9,10,11,12]
如果索引已被使用,将跳过该索引,然后继续索引下一个重复值,然后进行进一步处理。 任何帮助,将不胜感激。预先感谢。
答案 0 :(得分:1)
类似的事情可能起作用:
In [1030]: a = [100, 200, 200, 400, 500, 600, 600, 700, 900, 1000, 400, 200, 500]
In [1036]: idx = []
In [1037]: for index, val in enumerate(a):
...: idx.append(index)
In [1038]: idx
Out[1038]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
或将list comprehensions
用于1行命令:
In [1042]: idx = [index for index,val in enumerate(a)]
适用于python2和python3。
答案 1 :(得分:0)
如果我的理解正确,那么您就是在想这个。是否重复,您似乎只想要一个从0
到a
的最后一个索引的列表。
如果是这种情况,只需发出
>>> list(range(len(a))) # Python 3
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
或
>>> range(len(a)) # Python 2
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]