【问题标题】:2D array (not list) in pythonpython中的二维数组(非列表)
【发布时间】:2021-01-16 06:30:58
【问题描述】:

我想从 2 个给定的列表中创建一个二维数组(不是列表)。我该怎么做? 例如,我想用列表 [1,2,3,4,5] 和 [6,7,5,9,34] 生成一个 2D 2by5 数组 还有我将如何迭代该数组。 这个我试过了

#import the necessary module
import array as arr

list1 = [2,3,5,7,1]
list2 = [13,17,19,23,29]

myarr = arr.array('i')
index = 0
for i in list1:
    myarr[0][index] = i
    index = index+1
index = 0
for i in list2:
    myarr[1][index] = i
    index = index+1

print(myarr)

得到错误

Traceback (most recent call last):
  File "temp.py", line 10, in <module>
    myarr[0][index] = i
IndexError: array index out of range

【问题讨论】:

  • 这能回答你的问题吗? 2D arrays in Python
  • 使用 numpy? ..
  • array 模块不支持多维数组。
  • 不,不幸的是,没有
  • 如果不能使用numpy,那为什么必须使用array模块?

标签: python sorting


【解决方案1】:

来自数组模块的文档:

这个模块定义了一个对象类型,它可以紧凑地表示一个基本数组 值:字符、整数、浮点数。数组是序列类型和 行为与列表非常相似,只是其中存储的对象类型是 受到约束。

所以,数组是一维的,你不能像拥有列表列表那样拥有数组数组。二维数组是不可能的。正如其他人所说:Numpy 将成为你的朋友。

【讨论】:

    【解决方案2】:

    先取一个空数组,取内部array为integer array
    然后附加值如下

    #import the necessary module
    import array as arr
    
    list1 = [2,3,5,7,1]
    list2 = [13,17,19,23,29]
    
    myarr = []
    
    myarr.insert(0, arr.array('i'))
    for i in list1:
        myarr[0].append(i)
    
    myarr.insert(1, arr.array('i'))
    for i in list2:
        myarr[1].append(i)
    
    print(myarr)
    

    【讨论】:

      猜你喜欢
      • 2015-05-22
      • 2011-05-03
      • 2019-08-08
      • 2020-03-22
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多