dict.setdefault('Name','').str('Name 1')
我想在 for 循环中直接将“名称”附加到字典中,如果名称不可用,我希望它是一个空字符串。我们可以使用 setdefault 得到这个吗?
当我使用上面的代码时,我得到错误 -
AttributeError: 'str' object has no attribute 'str'
dict.setdefault('Name','').str('Name 1')
我想在 for 循环中直接将“名称”附加到字典中,如果名称不可用,我希望它是一个空字符串。我们可以使用 setdefault 得到这个吗?
当我使用上面的代码时,我得到错误 -
AttributeError: 'str' object has no attribute 'str'
你不能做你想做的事情,因为str
它是不可变的,你总是需要构造一个新的字符串并将其分配回键。您可以使用list
s 执行此操作,因为 slist
是可变的,即您可以更改字典中的列表。
str
仅用于dict.get()
. 这会将值附加到字典中的现有值(如果存在)或空字符串(如果不存在),例如:
d['Name'] = d.get('Name', '') + 'Name 1'
或者,使用 a collection.defaultdict
,例如:
d = defaultdict(str)
d['Name'] += 'Name 1'
注意:不要dict
用作隐藏pythonsdict
类型的变量名。
我想在 for 循环中直接将“名称”附加到字典中,如果名称不可用,我希望它是一个空字符串
这可以通过setdefault来完成:
dict.setdefault('Name', '')
注意:dict
对于变量来说是一个非常糟糕的名称:它隐藏了内置类型dict
。