2013-06-04 50 views
0

我不斷收到IndexError:列表分配索引超出範圍。 這裏是我的代碼:Python列表分配索引超出範圍

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] 
+2

什麼是*完整*追溯? –

+0

回溯(最近最後調用): 文件 「C:\ Python27 \ StevenScripts \ Opdracht 1 PS \ Flux.py」,第15行,在 MV [I] = 10.1 - 2.5 * np.log(FV [i]/1220000) IndexError:列表分配索引超出範圍 – Steven

+1

您可以[編輯]您的帖子以添加該類信息。 –

回答

4
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 
+0

非常感謝! – Steven