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

简介: 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.

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

相关文章
|
4月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
121 2
|
4月前
|
Python
【Leetcode刷题Python】53. 最大子数组和
LeetCode第53题"最大子数组和"的Python解决方案,利用动态规划的思想,通过一次遍历数组并维护当前最大和以及全局最大和来求解。
122 2
|
4月前
|
Python
【Leetcode刷题Python】剑指 Offer 04. 二维数组中的查找
剑指Offer题目 "二维数组中的查找" 的Python解决方案,包括非递归迭代、递归以及使用内置函数的二分查找方法,以判断一个有序的二维数组中是否含有给定整数。
38 1
|
4月前
|
Python
【Leetcode刷题Python】剑指 Offer 03. 数组中重复的数字
解决剑指Offer题目 "数组中重复的数字" 的Python实现方法,通过使用字典来记录数组中每个数字的出现次数,快速找出重复的数字。
39 1
|
2月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
85 10
|
2月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
104 4
|
4月前
|
存储 数据处理 索引
如何删除 Python 数组中的值?
【8月更文挑战第29天】
186 8
|
4月前
|
索引 Python
向 Python 数组添加值
【8月更文挑战第29天】
59 8
|
4月前
|
存储 缓存 C语言
|
4月前
|
存储 测试技术 Python
Python 数组和列表有什么区别?
【8月更文挑战第29天】
538 4