首页 > 解决方案 > 如何合并或删除列表中与前一项重复的元素?

问题描述

我有一个清单:

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

解决方案


您应该检查该项目是否等于前一个项目'-'这可以在 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] == '-')]

推荐阅读