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

如何移除元组列表中field#2重复的元素(保留单个实例)

元组列表按第二个字段去重的解决方法

你当前使用dict.fromkeys(group)未达成预期,是因为字典将整个元组作为键,而示例中每个元组的第一个字段不同,所有元组都会被判定为唯一键,无法实现按第二个字段去重的需求。

以下是两种满足需求的实现方式:

保留第一个出现的实例

通过遍历列表,用集合记录已出现的第二个字段,仅添加未出现过的元组:

#!/usr/bin/env python3
group = (
        (1658, 'alps no shoujo heidi'),
        (1659, 'alps no shoujo heidi'),
        (1660, 'alps no shoujo heidi'),
        (1661, 'alps no shoujo heidi'),
        (1662, 'alps no shoujo heidi'),
        (1663, 'alps no shoujo heidi'),
)

seen = set()
titles = []
for item in group:
    if item[1] not in seen:
        seen.add(item[1])
        titles.append(item)

print(titles)  # 输出: [(1658, 'alps no shoujo heidi')]

保留最后一个出现的实例

利用字典键的唯一性,遍历过程中用后续元组覆盖同字段的先前记录,最终提取字典值即可:

#!/usr/bin/env python3
group = (
        (1658, 'alps no shoujo heidi'),
        (1659, 'alps no shoujo heidi'),
        (1660, 'alps no shoujo heidi'),
        (1661, 'alps no shoujo heidi'),
        (1662, 'alps no shoujo heidi'),
        (1663, 'alps no shoujo heidi'),
)

title_dict = {item[1]: item for item in group}
titles = list(title_dict.values())

print(titles)  # 输出: [(1663, 'alps no shoujo heidi')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:45:32