我是一名Python新手。我已经搜索了很多解决方案,但都不太符合我的需求。我想在程序开始时分配一个空数组,它有a行和b列。我想出了一个解决方案,但遇到了一个意料之外的问题。这就是我的解决方案:
a = 7
b = 5
array_ab = [['?'] * b] * a
生成
[['?', '?', '?', '?', '?'],
['?', '?', '?', '?', '?'],
['?', '?', '?', '?', '?'],
['?', '?', '?', '?', '?'],
['?', '?', '?', '?', '?'],
['?', '?', '?', '?', '?'],
['?', '?', '?', '?', '?']]
然而,如果我尝试更改单个元素,它会将每一行都视为相同的对象,并将整列有效地更改为该元素。例如:
array_ab[4][2] = '1'
产生
[['?', '?', '1', '?', '?'],
['?', '?', '1', '?', '?'],
['?', '?', '1', '?', '?'],
['?', '?', '1', '?', '?'],
['?', '?', '1', '?', '?'],
['?', '?', '1', '?', '?'],
['?', '?', '1', '?', '?']]
显然,我需要一种比乘法更好的方法来创建一个空数组。在Python中有没有解决方案?(在FORTRAN中这是如此简单!)
numpy
。它是一个处理数组的模块。 - kylieCatt