如何在Python中创建二维数组,如果我们知道行数,而列数取决于某些条件?
我的数组最大可以有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)]