zc1307 2017-01-03 08:34 采纳率: 0%
浏览 2155

Python脚本 索引越界的问题

sort data

1: for d in sorted(biom['data'], key=itemgetter(2), reverse=True):
name = biom['rows'][d[0]]['id'] if opts.source != 'Subsystems' else biom['rows'][d[0]]['metadata']['ontology'][-1]
if len(top_ann) >= opts.top:
break
if sub_ann and (name not in sub_ann):
continue
top_ann[name] = d[2]

# output data
for k, v in sorted(top_ann.items(), key=itemgetter(1), reverse=True):
    safe_print("%s\t%d\n" %(k, v))

return 0

2:if name == "__main__":
sys.exit( main(sys.argv) )

    提示两处错误,1,2。 for d in sorted(biom['data'], key=itemgetter(2), reverse=True):

IndexError: list index out of range

  • 写回答

1条回答 默认 最新

  • 小邓在路上 2017-01-04 01:40
    关注

    我把你的代码稍微的重新整理了一下,下次注意对齐和缩进(CSDN如果要插入代码的话,注意文本框上面的尖括号,点击会出现双引号,把代码
    贴在双引号中就可以保证对齐和缩进了)

     for d in sorted(biom['data'], key=itemgetter(2), reverse=True):
        name = biom['rows'][d[0]]['id'] if opts.source != 'Subsystems' else biom['rows'][d[0]]['metadata']['ontology'][-1]
        if len(top_ann) >= opts.top:
            break
        if sub_ann and (name not in sub_ann):
            continue
        top_ann[name] = d[2]
        # output data
        for k, v in sorted(top_ann.items(), key=itemgetter(1), reverse=True):
            safe_print("%s\t%d\n" %(k, v))
    
    return 0
    if name == "__main__":
    sys.exit( main(sys.argv) )
        提示两处错误,1,2。 for d in sorted(biom['data'], key=itemgetter(2), reverse=True):
    IndexError: list index out of range
    

    另外从提供的错误来看,我初步判定是你的biom['date']中根本就没有2这个域,所以才导致会越界。

    评论

报告相同问题?

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致