我在下面列出了。
a = [4, 4, 1, 1, 1, 2, 2, 3, 1, 1]
我想删除重叠,但保留外观顺序。所以我想得到这样的列表
b = [4, 1, 2, 3, 1]
我不会删除所有重叠(如果下一个或上一个值与上一个或下一个值相同,则要删除(。
如何编写代码以获取该列表?
使用 itertools.groupby
:
[k for k, _ in groupby(a)]
示例:
from itertools import groupby
a = [4, 4, 1, 1, 1, 2, 2, 3, 1, 1]
print([k for k, _ in groupby(a)])
# [4, 1, 2, 3, 1]