我对这个问题很好奇:消除列表元素的连续重复,以及如何在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
Run Code Online (Sandbox Code Playgroud)
输出:
[1, 2, 3, 4, 5, 1, 2]
Run Code Online (Sandbox Code Playgroud)
我觉得还可以.
所以我很好奇,想看看我是否可以删除连续重复的元素并获得此输出:
[2, 3, 5, 1, 2]
Run Code Online (Sandbox Code Playgroud)
为此我做了这个:
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
Run Code Online (Sandbox Code Playgroud)
但它似乎有点笨拙而不是pythonic,你有更智能/更优雅/更有效的方式来实现它吗?