【问题标题】:How to have an array of arrays in Python如何在Python中拥有一个数组数组
【发布时间】:2018-03-08 08:40:07
【问题描述】:

我是 python 新手,但我在 vb.net 中的编码很扎实。我试图将数值保存在锯齿状数组中;要在 vb.net 中执行此操作,我会执行以下操作:

Dim jag(3)() as double
For I = 0 to 3
   Redim jag(i)(length of this row)
End

现在,我知道 python 不使用这样的显式声明(也许可以,但我不知道怎么做!)。我已经尝试过这样的事情;

a(0) = someOtherArray

但这不起作用 - 我收到错误 无法分配给函数调用。关于更顺畅的方法的任何建议?我宁愿避免使用二维矩阵,因为 a 的不同元素(即 a(0)、a(1)、...)的长度不同。

【问题讨论】:

  • a(0) = someOtherArray 正在尝试调用名为 a 的函数并将 0 作为参数传入。正确的语法是a[0] = someOtherArray
  • 这是从 vb.net 继承的!我需要忘掉这么多!谢谢你。我现在收到一个错误“名称'a'未定义”
  • arr = [[]] 我不确定您要做什么,python 列表是动态分配的,但是如果您想要预定义的长度和维度,请使用列表推导。
  • 修复了它!谢谢!!
  • a 只是您调用数组的名称,[0] 是索引。您需要先定义一个数组,然后再为其赋值。

标签: python arrays python-2.7 multidimensional-array jagged-arrays


【解决方案1】:

From Microsoft documentation:

锯齿状数组是其元素为数组的数组。的元素 锯齿状数组可以有不同的维度和大小

关于 Data Structures 的 Python 文档。

您可以将列表存储在另一个列表或存储列表的字典中。根据您的阵列的深度,这可能不是最佳选择。

numbersList = []

listofNumbers = [1,2,3]
secondListofNumbers = [4,5,6]

numbersList.append(listofNumbers)
numbersList.append(secondListofNumbers)

for number in numbersList:
    print(number) 

【讨论】:

    【解决方案2】:

    arr = [[]]

    我不确定您要做什么,python 列表是动态分配的,但是如果您想要预定义的长度和维度,请使用列表推导。

    arr = [[0 for x in range(3)] for y in range(3)]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-01
      • 2019-12-02
      • 2016-09-03
      • 2011-05-12
      • 2013-07-18
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      相关资源
      最近更新 更多