我对这个问题很好奇:如何在Python中消除列表元素的连续重复。
我想到的解决方案是:
list = [1,1,1,1,1,1,2,3,4,4,5,1,2]
i = 0
while i < len(list)-1:
if list[i] == list[i+1]:
del list[i]
else:
i = i+1
输出:
[1, 2, 3, 4, 5, 1, 2]
我想这样也没问题。
于是我很好奇,想试试能否删除连续重复的元素并得到以下输出:
[2, 3, 5, 1, 2]
为此我做了这个:
list = [1,1,1,1,1,1,2,3,4,4,5,1,2]
i = 0
dupe = False
while i < len(list)-1:
if list[i] == list[i+1]:
del list[i]
dupe = True
elif dupe:
del list[i]
dupe = False
else:
i += 1
不过这似乎有点笨拙,不太符合 Python 风格,你有更聪明/更优雅/更高效的方法来实现吗?