在Python中添加到字典时,是否可以连接一个值?

在Python中添加到字典时,是否可以连接一个值?,python,python-3.x,Python,Python 3.x,我不想将列表附加到某个键的值,而是想将字符串连接到循环中的值。因此,每次迭代键都会映射到一个不同的值,该值已与一个新字符串连接。我该怎么做呢?您可以使用dict.get方法作为空字符串的默认值: dictionary.setdefault(key, []).append(somelist) 将空字符串设置为默认值,并像往常一样连接 dictionary[key] = dictionary.get(key, '') + some_string str值是不可变的,因此不能将字符串连接到现有值;

我不想将列表附加到某个键的值,而是想将字符串连接到循环中的值。因此,每次迭代键都会映射到一个不同的值,该值已与一个新字符串连接。我该怎么做呢?

您可以使用
dict.get
方法作为空字符串的默认值:

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

将空字符串设置为默认值,并像往常一样连接

dictionary[key] = dictionary.get(key, '') + some_string

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

from collections import defaultdict
d = defaultdict(str)
d['a'] += 'hello'
d['a'] += 'world'
print(d)
setdefault
在这里不起作用,因为您无法分配
setdefault
的返回值

>>> d = collections.defaultdict(str)
>>> d["foo"] += "bar"
>>> d["foo"] += "baz"
>>> d["foo"]
'barbaz'
>>d.setdefault(“foo”和“)+=“bar”
文件“”,第1行
SyntaxError:无法分配给函数调用

我们能否获得所需的输出,以便更清楚地了解您的意思,从我所读到的内容中,您希望将字符串连接到字典值

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


提供一些示例输入/输出,以及您解决问题的尝试。现在听起来太宽泛了。这样你就更有可能在这里得到答案。你能举个例子吗?的确。固定的。谢谢,很抱歉大脑出现故障。现在已修复。现在看起来不错:-)这是唯一一个在我解释时真正回答问题的答案(例如,“如果我不确定密钥是否存在,如何向普通字典中的键值对的值添加字符串?”)
dicta = {'vash': 'the'}

string = ' is concatenating'

lista = [' stampede', string]

for i in lista:
    for k in dicta:
        dicta[k] += i

print(dicta)
(xenial)vash@localhost:~/python/stack_overflow$ python3.7 conc.py 
{'vash': 'the stampede is concatenating'}