Python range()边界问题

290 阅读1分钟

问题:for循环嵌套,将排序完的列表存储到新的excel中,输出时,数据重复执行了两遍

for i in range(2, row_st):
    for j in range(1, col_st-1):
        #student_summary.cell(row=i, column=j).value = sorted_by[i - 2][student_summary.cell(row=1, column=j).value]
        student_summary.cell(row=i, column=j).value = sorted_by[i - 2][list_key[j - 1]]

查找问题:range()函数,左闭右开,误以为左右都是闭的,导致数据重复

解决方式:增加边界,使函数空间增大,即可解决

for i in range(2, row_st+1):
    for j in range(1, col_st):
        #student_summary.cell(row=i, column=j).value = sorted_by[i - 2][student_summary.cell(row=1, column=j).value]
        student_summary.cell(row=i, column=j).value = sorted_by[i - 2][list_key[j - 1]]