【发布时间】:2021-02-12 11:46:30
【问题描述】:
我对迭代列表比较陌生,看过一些 youtube 视频和其他资源后,我已经能够导入一个 CSV 文件并创建一个字符串值数组。 CSV 文件有空格,所以当我循环并转换为整数时,它会失败。当我使用带有 isinstance 作为浮点数的 IF 语句来处理错误时,我的输出中返回 0。
我正在尝试在没有内置库的情况下执行此操作,以便更好地了解如何遍历列表。我觉得在这里问这样一个平凡的问题很愚蠢,任何有关如何处理错误的指导将不胜感激。
with open('WHO.CSV', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
next(csv_reader)
avg_100k = 0
for row in csv_reader:
if isinstance(row[7], float) == True:
avg_100k = avg_100k + float(row[7])
j = j + 1
print(j)
print(avg_100k)
j 和 avg_100k 的输出都是 0.0。为什么没有正确计算平均值?
【问题讨论】:
-
CSV 没有列类型,它们都是字符串,那么为什么
row[7]会是浮点数? -
我正在尝试将其从字符串类型转换为浮点数,以便对它们求和,我不确定这是否是正确的方法?
-
isinstance在你的类型转换之前运行,但是
标签: python list loops csv iteration