Python:从循环创建多维数组

2 投票
1 回答
817 浏览
提问于 2025-04-18 05:52

请问你能帮我吗?我在想怎么从一个循环中创建一个多维数组。
我正在遍历一个数据表中的行,想把这些行放到一个数组里。
谢谢!
Jay

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)

1 个回答

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)
...

这样会给你一个一维数组,里面包含了所有的值。因为你说你想要一个多维数组,所以这个方法对你来说不适用。

撰写回答