假设列表
[7,7,7,7,3,1,5,5,1,4]
我想删除重复项并在保留列表顺序的同时计算它们。为了保留删除重复项的列表顺序,我使用了该功能
def unique(seq, idfun=None):
# order preserving
if idfun is None:
def idfun(x): return x
seen = {}
result = []
for item in seq:
marker = idfun(item)
if marker in seen: continue
seen[marker] = 1
result.append(item)
return result
那是给我输出
[7,3,1,5,1,4]
但我想要的期望输出是(在最终列表中可能存在)是:
[7,3,3,1,5,2,4]
7 是因为它是列表中的第一项而被写入,然后检查以下是否与上一个不同。如果答案是肯定的,则计算相同项目的出现次数,直到找到新项目。然后重复该过程。任何比我更熟练的人可以给我一个提示以获得上面列出的所需输出吗?先感谢您