首页 > 解决方案 > 删除列表中的特定连续重复项

问题描述

该帖子与类似,但我想要的是删除列表中特定的连续重复项。所以假设我们有这个列表:

[1,1,1,2,2,3,2,4,4,4,1]

我希望有:

[1,2,2,3,2,4,4,4,1]

我只想删除“那些”。我正在尝试itertools.groupby,但我还没有找到方法。

标签: pythonduplicatesitertools

解决方案


您可以使用itertools.groupby和使用分组密钥来保留密钥或保留返回的组:

l = [1,1,1,2,2,3,2,4,4,4,1]

from itertools import chain, groupby

list(chain.from_iterable([k] if k==1 else v for k,v in groupby(l)))
# [1, 2, 2, 3, 2, 4, 4, 4, 1]

推荐阅读