首页 > 解决方案 > 关于从文件计算传入数据的问题

问题描述

如果我正在读取带有一些变量的数据文件,我需要通过从不同的行添加它们来计算不同项目的总数。例如:

Fruit,Number
banana,25
apple,12
kiwi,29
apple,44
apple,81
kiwi,3
banana,109
kiwi,113
kiwi,68

我们需要添加第三个变量,即水果的总数,以及所有水果的总数。所以输出应该如下所示:

Fruit,Number,TotalFruit,TotalAllFruits
banana,25,25,25
apple,12,12,37
kiwi,29,29,66
apple,44,56,110
apple,81,137,191
kiwi,3,32,194
banana,109,134,303
kiwi,113,145,416
kiwi,68,213,484

我能够打印前 2 列,但后 2 列有问题

import sys
import re

f1 = open("SampleInput.csv", "r")
f2 = open('SampleOutput.csv', 'a')
sys.stdout = f2
print("Fruit,Number,TotalFruit,TotalAllFruits")
for line1 in f1:
    fruit_list = line1.split(',')
    exec("%s = %d" % (fruit_list[1], 0))
    print(fruit_list[0] + ',' + fruit_list[1])

我只是在学习python,所以如果我遗漏了一些非常简单的东西,我想提前道歉。

标签: python-3.x

解决方案


您需要声明一个二维数组以保留从输入文件中读取的值。并且在循环期间,您需要从前几行读取值,然后计算当前行的值。并在读取所有输入行后打印二维数组。


推荐阅读