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

如何去除Python字典中列表值的重复元素并生成新字典?

处理字典列表值的重复元素

这里有几种实用的方法可以实现你的需求,根据场景选择即可:

方法1:手动遍历去重(兼容所有Python版本,保留元素顺序)

这种方法直观可控,手动记录已出现的元素,确保每个元素只保留第一次出现的实例:

duties = { 
    0: ["Submit an assignment","Submit an assignment"],
    1: ["Submit an assignment", "Finish a book review"]
}

duties_without_duplicates = {}
for key, items in duties.items():
    seen = set()
    unique_list = []
    for item in items:
        if item not in seen:
            seen.add(item)
            unique_list.append(item)
    duties_without_duplicates[key] = unique_list

# 输出目标结果
print(duties_without_duplicates)

方法2:利用字典有序性简化代码(Python 3.7+,保留顺序)

Python 3.7及以上版本的字典会保留键的插入顺序,借助dict.fromkeys()可以快速实现去重,再转回列表即可:

duties = { 
    0: ["Submit an assignment","Submit an assignment"],
    1: ["Submit an assignment", "Finish a book review"]
}

duties_without_duplicates = {
    key: list(dict.fromkeys(items))
    for key, items in duties.items()
}

一行推导式就能完成,代码简洁且能维持原列表的元素顺序。

方法3:集合转列表(不关心顺序时用,速度最快)

如果不需要保留原列表的元素顺序,直接用集合去重是效率最高的方式:

duties = { 
    0: ["Submit an assignment","Submit an assignment"],
    1: ["Submit an assignment", "Finish a book review"]
}

duties_without_duplicates = {
    key: list(set(items))
    for key, items in duties.items()
}

注意:集合是无序结构,转成列表后元素顺序会和原列表不一致,适合对顺序无要求的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:05:34