今天边肖给大家分享一个Python二维数组赋值问题的解决方案,有很好的参考价值。希望对你有帮助。来和边肖一起看看吧。
当我们用s=[[0]*3]*2初始化一个数组,然后把value赋给s[0][0]时,第一列的所有值都改变了。因为数组是用s=[[0]*3]*2初始化的,它表示对这个列表的引用,所以当你修改一个值时,整个列表都会被修改。
换一种初始化方式,就可以解决这个问题:
写这个主要是因为今天在写【机器人的运动范围问题】:
地面上有一个M行N列的正方形。机器人开始从坐标为0,0的网格移动。它一次只能向左、右、上、下移动一格,但不能进入行坐标和列坐标位数之和大于k的格,比如k为18时,机器人可以进入方块(35,37),因为3 5 3 7=18。但是,它不能进入正方形(35,38),因为3 5 3 8=19。机器人能到达多少个方格?
由于网格初始化问题导致的bug,浪费了很多时间。
以上关于Python二维数组赋值问题的解决方法是边肖分享的全部内容。希望能给大家一个参考,多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。