qq_47409543 2020-10-27 22:18 采纳率: 0%
浏览 40

求大佬帮忙看看有什么问题,一直报告超出范围

from openpyxl import load_workbook, Workbook
import random
wb = load_workbook('选手信息.xlsx')
sheetname=wb.sheetnames[0]
ws=wb[sheetname]
dic= {}
for rn in range(1, ws.max_row + 1):
temp_list =[]
key=ws['A'+str(rn)].value
w1 =ws['B'+str(rn)].value
w2 =ws['C'+str(rn)].value
w3 =ws['D'+str(rn)].value
temp_list =[w1, w2, w3]
dic[key] = temp_list
nums_list = []
result_list = []
aver_list = []
scor_list = []
rows = 8
columns = 10
for i in range(rows):
nums_list.append([])
result_list.append([])
for j in range(columns):
num = random.randint(0,10)
nums_list[i].append(num)
nums_list[i].sort()
del nums_list[i][0]
del nums_list[i][-1]
aver = sum(nums_list[i]) / len(nums_list[i])
scor = round(aver * dic['s0' + str(i + 1)][2], 3)
result_list[i].append('s0' + str(i + 1))
for n in range(3):
result_list[i].append(dic['s0' + str(i + 1)][n])
last_result=sorted(result_list,key=lambda e:e[5],reverse=True)
for n in range(rows):
last_result[n].append(n+1)
print(last_result)
wb=Workbook()
sheet = wb.active
sheet.title='成绩表'
sheet_field=['选手ID','姓名','国家',
'难度系数','平均分','最后得分','名次'
]
sheet.append(sheet_field)
for s in last_result:
sheet.append(s)
wb.save('result_final.xlsx')
图片说明图片说明图片说明

  • 写回答

1条回答 默认 最新

  • 吃鸡王者 2020-10-28 09:06
    关注

    result_list列表里边有元素的长度不够,建议你把result_list打印输出一下,看看具体是原因!

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:有没有什么其他办法能够保证不退出进程(相关搜索:matlab调用)
  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧