【发布时间】:2019-03-25 15:58:28
【问题描述】:
我有一个如下所示的文本文件:
100 Spam
250 Spam
50 Spam
20 Eggs
70 Eggs
现在我想将这些行合并到一个新文件中,如下所示:
300 Spam
90 Eggs
我将文件逐行读取到列表中。现在我像这样遍历列表中的每个项目:
new_list = []
j = 1
for i in range(len(old_list)):
new_list.append("")
if old_list[i][4:] == old_list[i-j][4:]:
new_list[i-j][:4] = str(int(old_list[i][:4].strip()) + int(old_list[i-j][:4].strip())).ljust(4)
new_list[i-j][4:] = old_list[i-j][4:]
j += 1
else:
new_list[i-j] = old_list[i-j]
我遇到了两个问题:
- 我收到一个类型错误,说我无法分配给字符串
- 即使没有错误,当要添加的行超过 2 行时,我也不会得到正确的总和,因为在循环中我会覆盖总和。我需要以某种方式存储这个总和,但我想不出一种优雅的方式来做到这一点。
我是编程新手,所以也许有更好的方法来解决所有问题?
【问题讨论】:
标签: python-3.x text