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

如何移除二维列表中互为反转的重复子列表?

移除二维列表中互为反转的重复子列表

给定如下二维列表:

[[1, 6], [2, 5], [3, 7], [5, 2], [6, 1], [7, 3], [8, 9], [9, 8]]

需求是移除所有互为反转的重复子列表(例如[1, 6]与[6, 1]、[3, 7]与[7, 3]这类成对元素),最终期望得到的结果为:

[[1, 6], [2, 5], [3, 7], [8, 9]]

解决思路与代码

核心逻辑是给每一组互为反转的子列表设定唯一标识,用集合记录已处理过的标识,遍历原列表时只保留首次出现的子列表:

original_list = [[1, 6], [2, 5], [3, 7], [5, 2], [6, 1], [7, 3], [8, 9], [9, 8]]
result = []
seen = set()

for sublist in original_list:
    t = tuple(sublist)
    reversed_t = tuple(reversed(sublist))
    # 取元组和其反转中较小的作为唯一标识,确保互为反转的子列表对应同一个标识
    key = min(t, reversed_t)
    if key not in seen:
        seen.add(key)
        result.append(sublist)

print(result)

运行这段代码即可得到符合要求的去重结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:25:24