【发布时间】:2019-07-16 02:00:32
【问题描述】:
我有下面的清单。
a = [4, 4, 1, 1, 1, 2, 2, 3, 1, 1]
我想删除重叠,但保留外观顺序。所以我想得到类似的列表
b = [4, 1, 2, 3, 1]
我不会删除所有重叠(如果下一个或上一个值与上一个或下一个值相同,则想要删除)。
如何编写代码来获取该列表?
【问题讨论】:
我有下面的清单。
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]
【讨论】: