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这个域,所以才导致会越界。

    评论

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏