【问题标题】:Python: Create a multidimensional array from a loopPython:从循环创建多维数组
【发布时间】:2014-06-26 07:02:54
【问题描述】:

请您帮忙,我正在努力如何从循环中创建多维数组。 我正在遍历数据表中的行,并希望将这些行传递给数组。 谢谢 杰

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)

【问题讨论】:

  • 你在bar得到什么?
  • 谢谢,我只得到了 idcursor 值,即 ['1', '2', '3']。我想查看循环中的其他游标值,即 durationcursor、actualcursor、startcursor、monthcursor、daycursor
  • 您大概只添加了idcursor 值,因为这就是您附加到bar 的全部内容。您是否尝试过以列表形式附加其他事物的值,例如 bar.append([idcursor,durationcursor,actualcursor]) 等?
  • 是的 Danno,如果我像这样添加另一个光标,我会收到错误 bar.append(idcursor.CurrentValue,durationcursor.CurrentValue) 这是 Microsoft.Scripting.ArgumentTypeException: append() 的错误正好 1 个参数(给定 2 个)
  • Hi for row in table.GetRows(idxSet,idcursor,durationcursor,actualcursor,startcursor,monthcursor,daycursor): brandList.append(idcursor.CurrentValue) durationList.append(durationcursor.CurrentValue) actualList.append (actualcursor.CurrentValue) startList.append(startcursor.CurrentValue) monthList.append(startcursor.CurrentValue) dayList.append(daycursor.CurrentValue)

标签: python arrays loops multidimensional-array ironpython


【解决方案1】:

丹诺在 cmets 中有你的答案。

你可以这样做:

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

注意[] 的使用。这不同于

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

使用[] 创建一个包含所有值的数组并将该数组附加到bar;而没有[] 将尝试将每个值作为单独的参数传递给bar.append(),这不像您发现的那样起作用。

您还提到您尝试过:

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

这将为您提供一个包含所有值的一维数组。既然你说你想要一个多维数组,这对你不起作用。

【讨论】:

    猜你喜欢
    • 2019-12-29
    • 2011-05-28
    • 1970-01-01
    • 2013-04-30
    • 2014-10-25
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多