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

Python新手求助:创建无重复字典时触发AttributeError错误

问题分析与解决

错误原因

  1. 字典无append方法:Python的dict(字典)对象没有append()方法,这个方法属于列表(list)。给字典添加键值对,要使用赋值语法字典[键] = 值或字典.update({键: 值})。
  2. 条件判断语法错误:原代码中if (key, val not in dup_free.items())括号位置错误,正确写法是if (key, val) not in dup_free.items()——但原字典的键本身就是唯一的,这个判断实际没有意义,最终dup_free会和原字典完全一致。

修正后的代码(按需调整)

需求1:创建无重复值的字典(相同值仅保留首个出现的键值对)

mydict = {
    "c": "2", 
    "b": "3", 
    "a": "4", 
    "d": "1",
    "e": "1",
    "f": "1"
}

dup_free = {}
seen_values = set()
for key, val in mydict.items():
    if val not in seen_values:
        dup_free[key] = val
        seen_values.add(val)

print(dup_free)
# 输出: {'c': '2', 'b': '3', 'a': '4', 'd': '1'}

需求2:仅确保键不重复(原字典已满足,直接复制即可)

dup_free = mydict.copy()
# 或用字典推导式
dup_free = {k: v for k, v in mydict.items()}

关键知识点

  • 字典核心特性:键(key)唯一,值(value)可重复。
  • 添加键值对:dict[key] = value会覆盖已存在的键对应的值;dict.update()可批量添加键值对。
  • 值去重技巧:用集合(set)记录已出现的值,避免重复添加相同值的键值对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:41:03