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

Python如何获取列表或表格中忽略顺序的唯一值对

数据处理两类需求实现方案

需求1:Python返回同一列表内顺序不同但元素一致的唯一元素对

实现核心逻辑是将元素对转换为无序可哈希的结构(如排序后的元组),利用集合自动去重的特性过滤重复项,避免顺序差异导致相同元素对被判定为不同。
代码示例:

def get_unique_pairs(input_list):
    unique_res = set()
    # 遍历所有不重复的两两组合
    for i in range(len(input_list)):
        for j in range(i + 1, len(input_list)):
            # 对两个元素排序后存为元组,消除顺序影响
            sorted_pair = tuple(sorted((input_list[i], input_list[j])))
            unique_res.add(sorted_pair)
    # 如需转换为&连接的字符串格式,可使用下面的返回语句
    return {"&".join(pair) for pair in unique_res}

# 测试用例
test_list = ["A", "B", "A", "C", "B", "D"]
print(get_unique_pairs(test_list))
# 输出:{'A&B', 'A&C', 'A&D', 'B&C', 'B&D', 'C&D'}

需求2:提取表格两列的无序去重组合对

实现逻辑和需求1一致,只需逐行提取两列对应元素做相同的排序去重处理即可,最终直接生成要求格式的集合。
代码示例(基于Pandas处理,也可替换为纯Python逐行读取文件的逻辑):

import pandas as pd

# 此处为示例表格构造,实际使用可替换为pd.read_csv/ pd.read_excel读取你的源文件
df = pd.DataFrame({
    "Col 1": ["A", "A", "B", "C", "E"],
    "Col 2": ["One"] * 5,
    "Col 3": ["B", "B", "A", "D", "F"]
})

res_set = set()
for _, row in df.iterrows():
    col1_val = row["Col 1"]
    col3_val = row["Col 3"]
    sorted_pair = sorted((col1_val, col3_val))
    res_set.add(f"{sorted_pair[0]}&{sorted_pair[1]}")

print(res_set)
# 输出:{'A&B', 'C&D', 'E&F'},完全符合要求格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:06:03