-1
dict.setdefault('Name','').str('Name 1')

我想在 for 循环中直接将“名称”附加到字典中,如果名称不可用,我希望它是一个空字符串。我们可以使用 setdefault 得到这个吗?

当我使用上面的代码时,我得到错误 -

AttributeError: 'str' object has no attribute 'str'
4

2 回答 2

1

你不能做你想做的事情,因为str它是不可变的,你总是需要构造一个新的字符串并将其分配回键。您可以使用lists 执行此操作,因为 slist是可变的,即您可以更改字典中的列表。

str仅用于dict.get(). 这会将值附加到字典中的现有值(如果存在)或空字符串(如果不存在),例如:

d['Name'] = d.get('Name', '') + 'Name 1'

或者,使用 a collection.defaultdict,例如:

d = defaultdict(str)
d['Name'] += 'Name 1'

注意:不要dict用作隐藏pythonsdict类型的变量名。

于 2018-07-05T21:07:49.933 回答
0

我想在 for 循环中直接将“名称”附加到字典中,如果名称不可用,我希望它是一个空字符串

这可以通过setdefault来完成:

dict.setdefault('Name', '')

注意:dict对于变量来说是一个非常糟糕的名称:它隐藏了内置类型dict

于 2018-07-05T20:08:01.013 回答