我的问题是,此平均值作为错误返回时不会显示
Traceback (most recent call last):
(file location), line 29, in <module>
average_score = [[x[8],x[0]] for x in a_list]
(file location), line 29, in <listcomp>
average_score = [[x[8],x[0]] for x in a_list]
IndexError: list index out of range
代码
import csv
class_a = open('class_a.txt')
csv_a = csv.reader(class_a)
a_list = []
for row in csv_a:
row[3] = int(row[3])
row[4] = int(row[4])
row[5] = int(row[5])
minimum = min(row[3:5])
row.append(minimum)
maximum = max(row[3:5])
row.append(maximum)
average = sum(row[3:5])//3
row.append(average)
a_list.append(row[0:8])
print(row[8])
当我测试0到7的值时,这显然有效,即使我更改平均和的位置,我仍然会收到错误
调用时a_list.append(row[0:8])
,仅使用来自的索引0、1、2、3、4、5、6和7附加数组row
。这意味着,当您以后进行迭代时a_list
,该x
变量的索引最多为7,并且您尝试访问8。
快速示例:
>>> row = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x = row[:8]
>>> x[8]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> x[7]
7
>>>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句