2014-05-08 51 views
2

請你幫忙,我正在努力如何從循環創建一個多維數組。 我正在循環訪問數據表中的行,並希望將這些行傳遞給數組。 感謝 周杰倫Python:從循環創建一個多維數組

from Spotfire.Dxp.Data import DataValueCursor 
from System import DateTime, TimeSpan, DayOfWeek 
from datetime import date 
import time 


#define ID 
idcursor=DataValueCursor.Create[str](table.Columns["ID"]) 

#define actual date 
actualcursor=DataValueCursor.Create[str](table.Columns["ActualDate"]) 

#define duration 
durationcursor=DataValueCursor.Create[int](table.Columns["Duration"]) 

#define Start, # of Months and # of days 
startcursor=DataValueCursor.Create[int](table.Columns["Start Months"]) 
monthcursor=DataValueCursor.Create[int](table.Columns["Number of Months"]) 
daycursor=DataValueCursor.Create[int](table.Columns["Number Of Days"]) 

#define Min and Max Dates 
mincursor=DataValueCursor.Create[str](table.Columns["Min Date"]) 
maxcursor=DataValueCursor.Create[str](table.Columns["Max Date"]) 

myPanel = Document.ActivePageReference.FilterPanel 
idxSet = myPanel.FilteringSchemeReference.FilteringSelectionReference.GetSelection(table).AsIndexSet() 

bar = [] 
for row in table.GetRows(idxSet,idcursor,durationcursor,actualcursor,startcursor,monthcursor,daycursor): 
#I would like this line to populate the array 
bar.append(idcursor.CurrentValue) 
+0

你在'bar'中得到了什麼? – TehTris

+0

謝謝我只得到idcursor值,即['1','2','3']。我想看看循環中的其他遊標值,即durationcursor,actualcursor,startcursor,monthcursor,daycursor –

+1

你可能只會添加'idcursor'值,因爲這就是你附加到'bar'的所有值。你有沒有嘗試以列表的形式追加其他東西的值,比如'bar.append([idcursor,durationcursor,actualcursor])'等等? – Dannnno

回答

0

Dannno曾在評論你的答案。

你可以這樣做:

bar.append([idcursor.CurrentValue, durationcursor.CurrentValue, ...]) 

注意使用[]。這是不同於

bar.append(idcursor.CurrentValue, durationcursor.CurrentValue, ...) 

如使用[]創建包含的所有值和追加該數組bar的陣列;而沒有[]會嘗試將每個值作爲單獨的參數傳遞給bar.append(),這不會像您發現的那樣起作用。

您也提到,你試過:

bar.append(idcursor.CurrentValue) 
bar.append(durationcursor.CurrentValue) 
... 

這會給你一個包含所有值的一個維數組。既然你說你想要一個多維數組,這不適合你。