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

如何筛选元组列表中左侧元素唯一的元组?

按元组左侧元素去重(保留首次出现项)

实现思路

用集合记录已处理过的左侧整数,遍历原列表时,仅将左侧整数未在集合中出现过的元组加入结果列表,同时把该整数存入集合,确保每个左侧整数只保留第一次出现的元组。

代码实现

original_list = [(1, 60),
 (1, 93),
 (1, 104),
 (1, 145),
 (1, 159),
 (4, 20),
 (4, 30),
 (4, 103),
 (8, 8),
 (9, 35),
 (9, 172),
 (9, 191),
 (10, 33),
 (10, 164),
 (10, 185)]

seen = set()
result = []
for item in original_list:
    left_num = item[0]
    if left_num not in seen:
        seen.add(left_num)
        result.append(item)

print(result)

运行结果

[(1, 60), (4, 20), (8, 8), (9, 35), (10, 33)]

补充说明

count函数不适用的原因:它只能统计整个元素在列表中的出现次数,无法针对元组的左侧元素做去重判断,且反复调用会让时间复杂度升至O(n²),用集合跟踪的方式更高效直接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:15:07