Sequenced indexing of duplicate elements in a list
我有一个列表是:
a = [100, 200, 200, 400, 500, 600, 600, 700, 900, 1000, 400, 200, 500]
如果我尝试使用以下方法查找'a'中的值的索引:
1 2 3 4 5 | 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, 3, 1, 4]
相反,我想要一个列表,它为每个重复值提供了唯一的索引。 像这样的东西:
xlist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
如果索引已经被使用则会跳转索引并继续索引下一个重复值并进一步执行。
任何帮助,将不胜感激。 提前致谢。
像这样的东西可以工作:
1 2 3 4 5 6 7 8 | 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] |
或者使用
1 | In [1042]: idx = [index for index,val in enumerate(a)] |
适用于python2和python3。
如果我理解正确,你就是在思考这个问题。 是否重复,您似乎只想要一个从
如果是这种情况,只需发出
1 2 | >>> list(range(len(a))) # Python 3 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] |
要么
1 2 | >>> range(len(a)) # Python 2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] |