为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

泛舟湖上清波郎朗 2022-10-11 16:04:24
该帖子与此类似,但我想要的是删除列表中特定的连续重复项。所以假设我们有这个列表:[1,1,1,2,2,3,2,4,4,4,1]我希望有:[1,2,2,3,2,4,4,4,1]我只想删除“那些”。我正在尝试itertools.groupby,但我还没有找到方法。
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

您可以使用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]


查看完整回答
反对 回复 2022-10-11
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

如果您在列表的开头搜索那些,则不需要导入模块来执行此操作,也可以在 for 循环中迭代元素:


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

for index, element in enumerate(your_list):

    if element != 1:

        break

if index:

    result = your_list[index-1:]

else:

    result = your_list

这将检查一个,直到找到另一个数字。另一个数字 -1 的索引是列表的开头。


如果列表中没有 1,index则为零并返回原始列表。


查看完整回答
反对 回复 2022-10-11
  • 2 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号