重复列表中的最高有效数字

时间:2019-08-02 17:20:12

标签: python python-3.x

我有一段代码需要一个包含最高有效数字的特定列表,但是使用.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

1 个答案:

答案 0 :(得分:1)

您可以使用itertools.groupbydoc)对元素进行分组:

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]