dict.setdefault('Name','').str('Name 1')
我想直接在for循环中将“名称”附加到字典中,如果名称不可用,我希望它是一个空字符串。我们可以使用setdefault来获得它吗?
使用上面的代码时,出现错误-
AttributeError: 'str' object has no attribute 'str'
答案 0 :(得分:1)
由于str
是不可变的,因此您无法做您想做的事情,您将始终需要构造一个新字符串并将其分配回键。您可以使用list
来执行此操作,因为list
是可变的,即您可以在字典中对列表进行变异。
对于str
,只需使用dict.get()
。这会将值附加到字典中的现有值(如果存在)或空白字符串(如果不存在)上,例如:
d['Name'] = d.get('Name', '') + 'Name 1'
或者,使用collection.defaultdict
,例如:
d = defaultdict(str)
d['Name'] += 'Name 1'
注意:不要使用dict
作为变量名,它会隐藏python dict
类型。
答案 1 :(得分:0)
我想直接在for循环中将“名称”附加到字典中,然后 如果名称不可用,我希望它是一个空字符串
只需setdefault即可完成此操作:
dict.setdefault('Name', '')
注意:dict
是一个非常不好的变量名:它掩盖了内置类型dict
。