我在python3中有以下列表:
a = [1, 1, 1, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 4, 3, 3, 3, 3]我想要这样的输出:
b = [1, 2, 3, 1, 2, 4, 3]我该怎么做呢?我已经尝试过a = set(a)和其他去掉重复项的方法。但它们会删除所有重复项。
发布于 2021-11-25 21:46:51
如果您愿意使用模块,则可以使用itertools.groupby
from itertools import groupby
a = [1, 1, 1, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 4, 3, 3, 3, 3]
output = [k for k, _ in groupby(a)]
print(output) # [1, 2, 3, 1, 2, 4, 3]发布于 2021-11-25 21:31:05
这将会起作用:
a = [1, 1, 1, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 4, 3, 3, 3, 3]
b = [a[0]]
for k in a:
if k!=b[-1]:
b.append(k)
print(b)发布于 2021-11-26 09:59:19
如果你熟悉C语言,你可能会喜欢这种风格:
a = [1, 1, 1, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 4, 3, 3, 3, 3]
b=len(a)
i=0
last_one=None
while i<b:
if a[i]==last_one:
del a[i]
b-=1
continue
else:
last_one=a[i]
i+=1
print(a)https://stackoverflow.com/questions/70117223
复制相似问题