def get_data(fp):
data = []
for line in fp:
line_list_ints = [int(number) for number in line.split()]
data.append(line_list_ints)
return data
def calculate_grades(data):
for line in data:
total_points = sum(line[1:6])
grade = get_grade(total_points)
data.insert(0,total_points)
data.insert(1,grade)
return data
我正在获取TypeError:“float”对象不可订阅第10行。我不明白为什么在将数字追加到数据列表之前要将它们转换成整数。有人能帮忙吗?我说得够清楚了吗?
具体的问题是因为数据中有浮动(最终)
因为你把它作为“等级”插入你的列表
一般的问题是,在遍历列表(“数据”)时,您正在修改列表(“数据”),这是一个坏主意-您的逻辑充其量很难读取,而且很容易永远循环。
呃,问题是第10行的部分
line[1:6]
。变量line
是浮点数,因此不能接受子列表。问题是,在遍历列表时,您正在使用
calculate_grades
中的data.insert
修改该列表。这将导致循环的第二次迭代,以将上一次迭代的grade
值视为line
,而不是预期的整数列表。我不完全明白你想做什么,所以我不能直接提出解决办法。也许您应该为输出创建一个单独的列表,或者就地修改
line
,而不是在data
中插入一个新项。相关问题 更多 >
编程相关推荐