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

如何从元组列表中提取所有唯一元素并整理为列表?

提取元组列表中的唯一元素并整理为列表

给定元组列表:

codes = [('A', ['B', 'C']), ('D', ['E', 'C'])]

期望输出:

['A', 'B','C','D','E']

你当前的代码只提取了每个元组的第二个子列表,得到的是[['B', 'C'], ['E', 'C']],既没包含元组里的单个元素(A、D),也没做扁平化和去重处理,下面是可行的实现方案:

实现方案

方法一:分步遍历(可读性高)

codes = [('A', ['B', 'C']), ('D', ['E', 'C'])]
all_items = []
# 遍历每个元组,收集所有元素
for code_tuple in codes:
    # 加入元组的第一个元素
    all_items.append(code_tuple[0])
    # 把第二个列表里的元素逐个加入
    all_items.extend(code_tuple[1])
# 去重同时保留元素出现的顺序(Python 3.7+ 字典默认有序)
unique_list = list(dict.fromkeys(all_items))
print(unique_list)

方法二:列表推导式(简洁写法)

codes = [('A', ['B', 'C']), ('D', ['E', 'C'])]
# 先收集所有元素:元组第一个元素 + 所有子列表元素
all_items = [t[0] for t in codes] + [sub for t in codes for sub in t[1]]
# 去重并转成列表
unique_list = list(dict.fromkeys(all_items))
print(unique_list)

两种方法最终都会输出:

['A', 'B', 'C', 'D', 'E']

如果不需要保留顺序,也可以用set去重后再转列表,但set会打乱顺序:

unique_list = list(set(all_items))
# 输出可能是 ['C', 'A', 'B', 'E', 'D'] 这类无序结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:03:36