如何在Python中创建二维数组,如果我们知道行数,而列数取决于某些条件?

2 投票
3 回答
1694 浏览
提问于 2025-04-15 17:57

我的数组最大可以有2行27列,但实际的列数可能少于27。列数是根据某些条件决定的。初始化一个2行27列的数组,然后再删除多余的列,这样做是否合适,或者有没有更好的方法呢?

3 个回答

1

对于这么少的元素,可以使用字典,把元组当作键:

dct = {}
dct[(0,0)] = 'X'
if (10,10) in dct:
    dct[(10,10)] += 1
else:
    dct[(10,10] = 0
# Deleting a row / column
dct.pop((10,0))
dct.pop((10,1))
...
dct.pop((10,10))

字典非常灵活。

另外,也可以使用numpy数组。

1

这里有一个简单的方法来处理这个问题:

num_rows, num_cols = 2, 27
table = []

for r in range(num_rows):
    row = []
    table.append(row)
    for c in range(num_cols):
        row.append(c)

print table
3

不,先创建一个更大的数组再去删除其中的一部分是没有意义的——你只需要创建你所需要的部分。假设你所说的“二维数组”其实是指“列表的列表”:

def makarray(value, nrows, ncols):
  return [[value]*ncols for _ in range(nrows)]

撰写回答