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 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献