【发布时间】:2020-12-30 00:32:45
【问题描述】:
A 部分:我被要求从包含 2 列的 csv 文件中读取数据,并以元组的形式返回数据。
B 部分:使用从 csv 文件返回的数据,我需要对每对元组求和:
来自 A 部分:
def csvReader(filename): #Function for reading .csv file
with open(filename) as file:
reader = csv.reader(file, delimiter=' ')
next(reader, None)
data = [tuple(row) for row in reader]
return(data)
csvReader('data.csv')
这是我从 A 部分返回的内容:
[('60,', '20,'), ('100,', '55,'), ('50,', '40,'), ('20,', '70,' ), ('95,', '85,')]
来自 B 部分:
def Plot(filename):
return[sum(i) for i in csvReader(filename)] #summing each pair of tuples
Plot('data.csv')
我期待这样的事情:
[80, 155, 90, 90, 180]
我有一个类型错误:TypeError: unsupported operand type(s) for +: 'int' and 'str'
【问题讨论】:
-
你需要将 str 转换为 int
-
为什么要指定
' '作为分隔符?该文件似乎是','分隔的。您的元组包含字符串(因此是引号),因此您需要使用int()将它们解释为整数。请注意,您选择的分隔符会导致字符串中包含逗号,您需要在使用int()之前排除这些分隔符