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维数组
PHP二维数组转换成一维数组,一个变量多个二维数组转换成一维数组,PHP二维数组(或任意维数组)转换成一维数组的方法汇总,array_reduce(); array_walk_recursive()