python - 当我尝试向 defaultdict(str) 添加值时出现错误

标签 python python-3.x

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

AttributeError: 'str' object has no attribute '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)

最佳答案

修复属性错误

字符串支持“+=”操作,而不是 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))

关于python - 当我尝试向 defaultdict(str) 添加值时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58618285/

相关文章:

python - 如何在保留标题的同时翻转 csv 行顺序?

python - VS 代码 Python 附加远程错误 'connect ECONNREFUSED'

python - 不明白为什么这段代码在不同版本的Python中给出不同的结果

Python 日志文件已更新,但尽管设置了级别,但没有任何内容打印到标准输出

python-3.x - 使用 google colaboratory 过滤相同的标签图像并在 google drive 中保存另一个文件夹

python - 如何让随机算法更有效率

python - 使用openCV python在相同颜色的图像周围绘制轮廓

python - Django 模型 - 字段依赖

python - 那么,由于 Scapy 已重命名为 Kamene,我将如何导入和使用 base64_bytes?

python - 为什么 OLS 回归模型中除了第一个(截距)之外的所有系数都获得非常接近零(e^-17 或低)的值?