Python 将字符串值附加到dict中的现有键
我试图将一个值附加到dict中已经存在的键 我遇到了这个SO链接,但是在这个特殊的例子中,值是整数,而在我的例子中,值是字符串 我想要的是:Python 将字符串值附加到dict中的现有键,python,python-3.x,dictionary,append,Python,Python 3.x,Dictionary,Append,我试图将一个值附加到dict中已经存在的键 我遇到了这个SO链接,但是在这个特殊的例子中,值是整数,而在我的例子中,值是字符串 我想要的是: mydict = {'ADE':'AD', 'RS':'S'} key1 = 'ADE' value1 = 'AE' if key1 in mydict: mydict[key1].append(value1) else: mydict[key1] = value1 我想附加到mydict['ADE'],这样它就等于['AD','AE'
mydict = {'ADE':'AD', 'RS':'S'}
key1 = 'ADE'
value1 = 'AE'
if key1 in mydict:
mydict[key1].append(value1)
else:
mydict[key1] = value1
我想附加到mydict['ADE']
,这样它就等于['AD','AE']
但是,这会生成一个AttributeError:“str”对象没有属性“append”
我甚至尝试了以下方法:
from collections import defaultdict
d = defaultdict(list)
mydict = {'ADE':'AD', 'RS':'S'}
for key, value in mydict.items():
d[key] = value
key1 = 'ADE'
value1 = 'AE'
if key1 in d:
d[key1].append(value1)
else:
d[key1] = value1
d
then=defaultdict(列表,{'ADE':'AD','RS':'S'})
然后我运行以下命令:
from collections import defaultdict
d = defaultdict(list)
mydict = {'ADE':'AD', 'RS':'S'}
for key, value in mydict.items():
d[key] = value
key1 = 'ADE'
value1 = 'AE'
if key1 in d:
d[key1].append(value1)
else:
d[key1] = value1
但是我得到了同样的错误:
AttributeError:'str'对象没有属性'append'
mydict[key1]
是一个str
ing(一个str
对象-类str
的对象)mydict[key1].append(value1)
尝试调用此str
对象的append
方法
str
对象没有append
方法,这正是错误消息告诉您的:“str”对象没有属性“append”
如果要将数据附加到某个对象,请使用集合,如列表:
mydict = {'ADE': ['AD'], 'RS': ['S']}
if key1 in mydict:
mydict[key1].append(value1)
else:
mydict[key1] = [value1]
由于键
ADE
存在,因此列表
工厂未使用,因此错误不可避免
您可以在一开始就使用列表工厂,因此if。。在..
中是无用的,因为defaultdict
的目的是避免自己检查
from collections import defaultdict
d = defaultdict(list)
mydict = {'ADE': 'AD', 'RS': 'S'}
for key, value in mydict.items():
d[key].append(value)
key1 = 'ADE'
value1 = 'AE'
d[key1].append(value1)
print(d) # defaultdict(<class 'list'>, {'ADE': ['AD', 'AE'], 'RS': ['S']})
从集合导入defaultdict
d=默认DICT(列表)
mydict={'ADE':'AD','RS':'S'}
对于键,mydict.items()中的值:
d[键]。追加(值)
键1='ADE'
值1='AE'
d[key1]。追加(值1)
打印(d)#defaultdict(,{'ADE':['AD','AE'],'RS':['S']})
附加值是什么意思?
ADE是关键,AE是价值。您是否正在尝试将值更改为AD?
或者您正在尝试执行类似AE+AD=AEAD的操作并将其分配给ADE键?
你的问题不清楚
您得到的错误是因为d[key1]是字符串值。字符串类型没有附加函数。
defaultdict
仅对缺少的键使用默认工厂,例如,d['ADE']
已存在,因此您只需获取值'AD'
。如果希望所有键都是列表,请将{'ADE':'AD','RS':'S'}
更改为{'ADE':['AD'],'RS':['S']}
.Oops。我真是个傻瓜。谢谢,现在一切都有意义了。试图附加到字符串而不是列表。