我有一段代码需要一个包含最高有效数字的特定列表,但是使用.index()
时出现问题
方法
我尝试过.index()
,并且它为重复的数字返回相同的索引
即num=[4,9,9,9,3,3,5,5,3]
并通过
[0,1,1,1,4,4,6,6,4]
out = []
for number in range(len(num)):
out.append(num.index(number))
期望的输出是“考虑的重复性”
[0,1,1,1,4,4,6,6,8] # repeated last index fixed
答案 0 :(得分:1)
您可以使用itertools.groupby
(doc)对元素进行分组:
from itertools import groupby
num=[4,9,9,9,3,3,5,5,3]
out = []
for _, g in groupby( enumerate(num), lambda k: k[1] ):
l = [*g]
out.extend([l[0][0]] * len(l))
print(out)
打印:
[0, 1, 1, 1, 4, 4, 6, 6, 8]