2014-05-08 54 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) 
... 

这会给你一个包含所有值的一个维数组。既然你说你想要一个多维数组,这不适合你。