首页 > 解决方案 > 当我尝试向 defaultdict(str) 添加值时出现错误

问题描述

我正在尝试将 value:'a[1]+ " "+a[2]' 添加到 defaultdict(str) 中的 key:'a[0]' 中。当我尝试运行我的代码时出现以下错误:

AttributeError:“str”对象没有属性“add”

files_summary = defaultdict(str)

for line in file:
     a = line.split()
     files_summary[a[0]].add(a[1]+ " "+a[2])

for i in files_summary.items():
     print(i)

标签: pythonpython-3.x

解决方案


修复 AttributeError

字符串支持 "+=" 操作而不是add()方法:

files_summary = defaultdict(str)

for line in file:
     a = line.split()
     files_summary[a[0]] += a[1]+ " " + a[2]

for i in files_summary.items():
     print(i)

“加入”的更好方式

也就是说,累积字符串的算法更好的方法是建立一个列表,然后str.join()将它们放在最后。

files_summary = defaultdict(list)

for line in file:
     a = line.split()
     files_summary[a[0]].append(a[1]+ " " + a[2])

for key, strings in files_summary.items():
     print(key, ''.join(strings))

推荐阅读