python创建二维数组的不同方式以及整列赋值的问题
一、会出现整列赋值的创建方式
在C中输入二维数组形式非常熟悉(采用codeblocks):输入一行的数字,每个之间空格隔开,回车继续输下一行
在python中采用同样的形式输入(采用PyCharm):
代码如下:
输入:
其中输入3->回车,输入4->回车,表示构建了一个A[4][3]的矩阵。输入1 2 3->回车,输入4 5 6->回车,输入7 8 9->回车,输入0 1 2->回车
输出:
这样创建二维列表在后续的使用中遇到了问题。
比如我的本意是把第二行第二个元素赋值为1,而输出如下
他将我每一行的第二列都赋值为了1,原因是因为我的二维列表创建方式导致了[[]]*4表示的是4个同时指向一个列表的引用,也就是4行都指向的是同一个列表,改变任意一个都会改变每一行的当列数据。
二、避免浅拷贝的创建方式
可以知道,上图的两种创建方式都可以避免浅拷贝,总结来说只要对于行不要使用*M这种写法,都可以避免。
第一种创建方式可以在创建时就固定二维列表的行和列。第二种创建方式可以初始只能固定行数,每一行的数据可以在后续append进去。
写此篇文章仅仅是为了巩固知识,小辣鸡一枚
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了