删除列表中的特定连续重复项

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

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

我希望有:

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

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


泛舟湖上清波郎朗
浏览 116回答 2
2回答

四季花海

您可以使用itertools.groupby和使用分组密钥来保留密钥或保留返回的组:l = [1,1,1,2,2,3,2,4,4,4,1]from itertools import chain, groupbylist(chain.from_iterable([k] if k==1 else v for k,v in groupby(l)))# [1, 2, 2, 3, 2, 4, 4, 4, 1]

MMMHUHU

如果您在列表的开头搜索那些,则不需要导入模块来执行此操作,也可以在 for 循环中迭代元素:your_list = [1,1,1,2,2,3,2,4,4,4,1]for index, element in enumerate(your_list):    if element != 1:        breakif index:    result = your_list[index-1:]else:    result = your_list这将检查一个,直到找到另一个数字。另一个数字 -1 的索引是列表的开头。如果列表中没有 1,index则为零并返回原始列表。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python