Python 创建一维数组二维数组和N维数组

Posted 风信子的猫Redamancy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 创建一维数组二维数组和N维数组相关的知识,希望对你有一定的参考价值。

Python 创建一维数组、二维数组和N维数组

我们已经很熟悉在C++上创建一维二维数组了,那么如何在Python上创建二维数组呢

>>> A = [0]*3
>>> B = [[0]*2]*3

这样就可以得到我们的一维数组和二维数组了,我们可以看一下结果

>>> A
[0, 0, 0]
>>> B
[[0, 0], [0, 0], [0, 0]]

似乎好像这样的方法,就能很好的创建一个二维数组,但是,如果简单认为就这样就大错特错了,python有个东西就是共享地址,所以我们这里其实是一个深拷贝,我们同时也把我们地址复制了,所以我们改变其中的数,也会改变,我们可以看一个例子。

>>> B[0][0] = 2
>>> B
[[2, 0], [2, 0], [2, 0]]

真的是坑爹啊,我被这个可是弄惨了,如果你觉得将其作为另一个变量,实际上我们的id也就是地址也是没有改变的,没什么区别的,任意修改一个元素就会修改整个列表的,并且python中的列表是一个可变类型,所以就会有这样的结果。

那么正确的做法应该是什么,我查了查资料,这样创建我们Python的列表

>>> C = [[0]*3 for i in range(4)]
>>> C
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> C[0][1] = 2
>>> C
[[0, 2, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

这样就不会造成随意改一改变量,我们的整个列表都被改变了,最后总结一下如何动态创建数组

aList = [[0] * cols for i in range(rows)]

每日一句

The shortest way to do many things is to only one thing at a time.

做许多事情的捷径就是一次只做一件事。

以上是关于Python 创建一维数组二维数组和N维数组的主要内容,如果未能解决你的问题,请参考以下文章

Python | Python保存高维数组array,Python用pandas将numpy保存csv文件,Python保存3维数组

C#创建2维数组

LC2022. 将一维数组转变成二维数组

一维数组和二维数组

c语言中怎样实现对二维数组元素进行赋值并输出。

PHP二维数组转换成一维数组,一个变量多个二维数组转换成一维数组,PHP二维数组(或任意维数组)转换成一维数组的方法汇总,array_reduce(); array_walk_recursive()