python - 删除列表中的特定连续重复项
问题描述
该帖子与此类似,但我想要的是删除列表中特定的连续重复项。所以假设我们有这个列表:
[1,1,1,2,2,3,2,4,4,4,1]
我希望有:
[1,2,2,3,2,4,4,4,1]
我只想删除“那些”。我正在尝试itertools.groupby
,但我还没有找到方法。
解决方案
您可以使用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]
推荐阅读
- rest - 在自定义列 ServiceNow api/Power BI 中获取组名
- python - Jupyter Notebook 中显示的 PC 文件夹和文件
- excel - 循环第一行的日期并匹配其他工作表的第一行
- woocommerce-theming - 如何在 woocommerce 评论表单中添加占位符?
- variables - 如何理解 Assembler 中的变量?
- reactjs - 如何在 ReactJS 中创建浏览器路由器?
- google-earth-engine - 在 Google Earth Engine 中使用 ui.Chart.image.series() 为时间序列像素分析创建两个 y 轴
- flutter - 如果您在 BlocBuilder 中指定 bloc,flutter_bloc 会处理 cubit 吗?
- python - 如何禁用分离实例关系上的 SQLAlchemy 延迟加载?
- python - 通过 virtualenv 运行自定义 python Icinga 插件