python中的动态二维数组

时间:2016-01-08 03:45:15

标签: python arrays dynamic 2d

我想在python中声明一个动态的二维数组。列数将固定,而行数应为动态。我也愿意使用numpy。我使用python 3,所以xrange不起作用。感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

以下是我将如何做到这一点

array2d = [list() for f in xrange(n)]

这会创建N个空列表。从这里你可以索引它们像

array2d[x][y] 

使用中的示例

array2d = [list() for f in xrange(3)] # We have Three Empty Rows
# Array looks like this -- [[] [] []]

#lets add an item into the first row
array2d[0].append("A")

#Now it looks like this -- [["A"] [] []]

答案 1 :(得分:0)

这应该可以解决您的问题。函数grow_rows将添加任何所需的行,使用固定的列数并使用0初始化条目(您可以将其更改为您喜欢的任何内容):

def grow_rows(arr, row_cnt, col_cnt):
    missing = row_cnt - len(arr)
    if missing > 0:
        arr.extend([[0] * col_cnt for i in range(missing)])

这是一个使用固定列数为3的示例。在访问尚未分配的行中的元素之前,它会调用grow_rows来创建所需的行:

col_cnt = 3
arr = []

print(arr)

grow_rows(arr, 2, col_cnt)
print(arr)

arr[1][2] = 123
print(arr)

这是输出:

[]
[[0, 0, 0], [0, 0, 0]]
[[0, 0, 0], [0, 0, 123]]

答案 2 :(得分:0)

Python 3的示例:

matrix = [list() for f in range(2)]    
print(matrix)                                                                

输出:

  

[[],[]]