首页 > 解决方案 > 我想要第 6 列 vlaues 的总和

问题描述

编码:

import csv
cr = csv.reader(open("filename"))
next(cr)
print (sum(float(x[6]) for x in cr))

但是出现错误IndexError: list index out of range

标签: pythonpython-2.7indexoutofboundsexception

解决方案


第 6 列的索引为 5 而不是 6,因此请更改:

print (sum(float(x[6]) for x in cr))

至:

print (sum(float(x[5]) for x in cr))

但是,如果您仍然IndexError在更改之后,可能是您的 CSV 中的某些行没有第 6 列,在这种情况下,您可以在生成器表达式中添加一个条件以跳过没有 6 列的行:

print (sum(float(x[5]) for x in cr if len(x) >= 6))

推荐阅读