You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除元组列表中连续重复元素并展开为一维列表

处理含元组的列表:展开并移除连续重复元素

实现思路

核心逻辑是逐个遍历所有元素(先展开所有元组),每次添加元素前检查是否与结果列表的最后一个元素重复,重复则跳过,不重复则添加。这个逻辑既能处理单个元组内部的连续重复,也能处理相邻元组之间的衔接重复。

代码实现

# 输入列表
input_list = [("0", "1"), ("1", "2"), ("0", "2"), ("2", "0")]
result = []

for tpl in input_list:
    for item in tpl:
        # 如果结果为空,或者当前元素和最后一个元素不重复,就添加
        if not result or item != result[-1]:
            result.append(item)

print(result)
# 输出:["0", "1", "2", "0", "2", "0"]

逻辑说明

  1. 初始化空列表result存储最终结果
  2. 外层循环遍历每个元组,内层循环遍历元组中的每个元素
  3. 对于每个元素:
    • 如果result为空(处理第一个元素),直接添加
    • 否则对比当前元素和result的最后一个元素,不重复才添加
  4. 这样不管是元组内部的重复(比如("3","3")只会保留一个"3"),还是相邻元组的衔接重复(比如前一个元组的末尾"1"和后一个元组的开头"1"),都会被自动去重。

针对你思路的补充

你提到的if index[0] == index[1]只能处理单个元组内部的重复,但没法处理元组之间的衔接重复。上面的通用逻辑可以一次性覆盖两种场景,代码更简洁也更健壮。

内容的提问来源于stack exchange,提问作者Belkacem1221

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:05:41