【发布时间】:2018-07-05 20:00:22
【问题描述】:
dict.setdefault('Name','').str('Name 1')
我想在 for 循环中直接将“名称”附加到字典中,如果名称不可用,我希望它是一个空字符串。我们可以使用 setdefault 获得这个吗?
当我使用上面的代码时,我得到错误 -
AttributeError: 'str' object has no attribute 'str'
【问题讨论】:
-
我不确定您要做什么。
setdefault将返回一个字符串,如错误消息所示;该字符串是字典中的新值。你想用这个字符串做什么? -
鉴于
.setdefault要么返回现有值,要么返回默认值'',您对.str有什么期望? -
@jonrsharpe @APerson 这是默认方法
setdefault(key,[ ]).append(value)但我想要一个字符串而不是列表。 -
当然,但该示例并未调用
.list。它正在调用.appendon 列表。那么为什么要访问.str,一个属性字符串肯定没有呢? -
是的,我明白这一点,但默认是
setdefault的第二个参数,根据the docs。与您的示例完全一样,其中默认值是一个空列表作为第二个参数传递。所以.setdefault('Name', '')实现了你所说的你想要的,我完全不清楚你为什么要加上.str('Name 1')。错误信息很清楚:字符串没有str方法。
标签: python python-3.x dictionary setdefault