2012-08-23 110 views
0

我有一個列表,我需要用空格分隔一維。我正在spyder上運行這個腳本,用於在Mac OS 10.8上運行的並行版上的ubuntu。訪問數組項目

什麼我得到的是:

print poly  
Output: [array([ 0.01322341, 0.07460202, 0.00832512])] 

print poly[0]  
Output: [array([ 0.01322341, 0.07460202, 0.00832512])] 

print poly[1]  
Output: 
Traceback (most recent call last): 

    File "/home/parallels/.../RampEst.py", line 38, in <module> 

    print poly[1] 

IndexError: list index out of range 

的「...」是文件目錄的其餘部分。

我需要的是:

print poly[0]  
Output: 0.01322341 

print poly[1]  
Output: 0.07460202 

print poly[2]  
Output: 0.00832512 
+0

您確定您在顯示的輸出中的正確位置上有括號嗎?我覺得'poly'和'poly [0]'打印完全一樣的東西似乎很奇怪。 – Blckknght

+0

'poly = poly [0]' –

+0

另外,你的'array'類型是什麼?它的輸出與標準庫中的array.array不匹配(它包含一個「類型」字符,例如用於雙精度浮點數的'd')。雖然這應該不重要,但如果該類型的接口有問題,則可能會出現問題。 – Blckknght

回答

0

你怎麼先初始化聚? 看來該數組在列表中,這將使其成爲列表的第零個元素。因此,當您請求poly [1]時,它會失敗。 要檢查我說的是否正確,請執行poly [0] [0],poly [0] [1]和poly [0] [2]。如果這些返回你想要的數字,那麼你的poly就在列表中。

4

您正在以錯誤的方式構造您的list對象。如果你發佈你正在做的事情,可能很清楚實際問題。

你會注意到以下幾點:

mylist = [ 0.01322341, 0.07460202, 0.00832512] 
mylist[0] # 0.01322341 
mylist[1] # 0.07460202 
mylist[2] # 0.00832512 

工作正常。從你發佈的內容來看,你有listarray類型。當您訪問0元素時,您將檢索列表中唯一的array對象。如果你不能改變你的列表結構,這將工作正常。

poly[0][0] # 0.01322341 
poly[0][1] # 0.07460202 
poly[0][2] # 0.00832512