【问题标题】:Python list assignment index out of rangePython列表分配索引超出范围
【发布时间】:2013-05-31 07:37:45
【问题描述】:

我不断收到 IndexError: list assignment index out of range。 这是我的代码:

import numpy as np
import asciidata

fv = [] 
fb = []
data = asciidata.open('Flux.txt')
for i in data[1]:
    fv.append(float(i))
for i in data[2]:
    fb.append(float(i))

mv = []
mb = []
for i in range (0,25):
    mv[i] = 10.1 - 2.5 * np.log(fv[i]/1220000)
    mb[i] = 11.0 - 2.5 * np.log(fb[i]/339368)
    print i, mv[i], mb[i]

【问题讨论】:

  • 什么是完整回溯?
  • Traceback(最近一次调用最后一次):文件“C:\Python27\StevenScripts\Opdracht 1 PS\Flux.py”,第 15 行,在 mv[i] = 10.1 - 2.5 * np.log(fv[i]/1220000) IndexError: list assignment index out of range
  • 您可以edit您的帖子添加此类信息。

标签: python indexing range out


【解决方案1】:
mv.append(10.1 - 2.5 * np.log(fv[i]/1220000))
mb.append(11.0 - 2.5 * np.log(fb[i]/339368))

mv[i] 不会工作,因为没有第 i 个索引

我真的会使用列表理解

mv = [10.1 - 2.5 * np.log(val/1220000) for val in fv]

而且由于您使用的是 numpy,因此您可以做得更好

fv = np.array(fv)
mv = 10 - np.log(fv/1220000)*2.5 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-21
    • 2019-06-18
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    相关资源
    最近更新 更多