Python新手求助:创建无重复字典时触发AttributeError错误
问题分析与解决
错误原因
- 字典无
append方法:Python的dict(字典)对象没有append()方法,这个方法属于列表(list)。给字典添加键值对,要使用赋值语法字典[键] = 值或字典.update({键: 值})。 - 条件判断语法错误:原代码中
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
相关产品推荐
相关产品推荐

