python的二维数组的赋值问题

如果我们想创建一个数值全为0的二维数组,一般用列表创建的话,我们一般会写arr=[[0]*5]*5,这样就可以得到一个全0的二维数组。
但是这个数组在赋值的时候就会出现错误,假设我们对其中的某一个元素的值进行修改,可能得到的结果与我们预想的有差别。


这是因为我们首先用的[0]*5会生成一个列表,而[[0]*5]*5得到的是[0]*5这个列表这个对象的引用。
也就是说这个二维数组里面的数组其实都是指向同一个对象,所以对里面单独一个元素进行修改时,里面每个列表的对应位置的都会修改。

所以一般在我们需要这种二维数组的时候,我们一般使用[[0]*5 for _ in range(5)]来创建。(numpy的zero可以直接创建)


全部评论

相关推荐

07-05 16:23
门头沟学院 Java
mengnankk:我投了300,约了5 6个面试。感觉项目写的太多了。一个项目就写五六个亮点,不是把整个项目的功能描述下。其他的没啥,简历看起来有点长
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 11:31
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务