首页 > 解决方案 > 在 Python 中添加到字典时可以连接一个值吗?

问题描述

dictionary.setdefault(key, []).append(somelist)

我不想将列表附加到某个键的值,而是想在循环中将字符串连接到我的值。所以每次迭代,键都会映射到一个不同的值,这个值已经与一个新的字符串连接起来。我怎么能那样做?

标签: pythonpython-3.x

解决方案


str值是不可变的,因此您不能将字符串连接到现有值;您只能用旧字符串形成的新字符串替换原始字符串。Adefaultdict简化了这一点。

>>> d = collections.defaultdict(str)
>>> d["foo"] += "bar"
>>> d["foo"] += "baz"
>>> d["foo"]
'barbaz'

setdefault在这里不起作用,因为您无法分配 的返回值setdefault,例如

>>> d.setdefault("foo", "") += "bar"
  File "<stdin>", line 1
SyntaxError: can't assign to function call    

推荐阅读