python - 如何合并或删除列表中与前一项重复的元素?
问题描述
我有一个清单:
output = ['9', '-', '-', '7', '-', '4', '4', '-', '3', '-', '0', '2']
我正在尝试将'-','-'部分减少到一个'-',但是,尝试的运气并不好。
final = [output[i] for i in range(len(output)) if output[i] != output[i-1]]
final = 9-7-4-3-02
我在上面尝试过,但它也将'4','4'减少到只有'4'。所以任何帮助都会很棒。
解决方案
您应该检查该项目是否等于前一个项目和,'-'
这可以在 Python 中使用 轻松完成a == b == c
。
请注意,您还应该以不同的方式处理第一个字符,因为output[0] == output[0-1]
会将第一项与最后一项进行比较,这可能会导致无效结果。
以下代码将处理此问题:
final = [output[0]] + [output[i] for i in range(1, len(output)) if not (output[i] == output[i-1] == '-')]
推荐阅读
- shopify - 如何在 Shopify 中创建动态链接
- python - 如何配置作为容器运行的 Prometheus 以抓取其他应用程序生成的指标作为容器
- java - 如何保持 Java 集合中对象的顺序?
- javascript - 当有人安装我的 npm 模块时,如何告诉 npm 不要安装任何依赖项?
- java - 如何通过 ADB 命令执行 APK(测试用例)?
- jquery - 基于 jquery 的组件没有被重新渲染
- wpf - 将第 3 方控件添加到 .NET Core WPF 应用程序
- c# - 使用 Office365 进行用户身份验证并授予网站访问权限
- java - 计数器不能正确计数大写字符和小写字符
- ios - 使用 AppCenter 分析管理不同的环境?