python - 当我尝试向 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)
解决方案
修复 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))
推荐阅读
- javascript - 在集成 React 本机和 android 应用程序时更改 MainActivity 条目
- lua - 在 corona sdk 中旋转对象
- webview - 在 WebView UWP 中调用 Javascript
- r - R markdown inline r 打印列表
- javascript - TypeError:无法读取未定义的属性“创建”(材料 UI/酶)
- php - 如何在 Laravel 的 Controller 构造函数中设置多个中间件?
- git - 如何修复重新定位、强制推送并合并到其他人本地的分支中的历史记录?两次?
- python - 使用 PyMongo 更新字典
- c# - 我们可以从 c# 重新启动 Microsoft Azure 应用服务吗?
- c# - 如何控制来自服务器的图像更新