当我运行单个代码时,它可以工作,但是当我在主代码中使用它时,会出现此错误:
x = ln [0] [1] IndexError:列表索引超出范围
有人可以帮助我吗?
def calculate_three_best(input_file_name, output_file_name):
main=[]
reader=csv.reader(input_file_name)
for row in reader:
ln=[]
ln.append(row[0])
these_grades=list()
for grade in row[1:]:
these_grades.append(float(grade))
ln.append(mean(these_grades))
main.append(ln)
d=collections.OrderedDict()
for each in main:
d[each[0]]=each[1]
ln=list(reversed(sorted(d.items(), key=itemgetter(1))))
x=ln[0][1]
lnn=list()
lnn.append(ln[0])
counter=1
for i in range (1,len(ln)):
if counter<3:
if ln[i][1]<x:
counter=counter+1
x=ln[i][1]
lnn.append(ln[i])
else:
if ln[i][0]>ln[i-1][0]:
lnn.append(ln[i])
else:
y=lnn[i-1]
lnn[i-1]=ln[i]
lnn.append(y)
writer = csv.writer(output_file_name)
writer.writerows(lnn)