当前位置:   article > 正文

python3创建二维数组_python3 二维数组

python3 二维数组

关于python3创建二维数组的问题

做题时遇到创建数组时遇到一个小问题,如下:

grid=[
["1","1","1","1","0"],
["1","1","0","1","0"],
["1","1","0","0","0"],
["0","0","0","0","0"]]
seen=[[0]*len(grid[0]) for _ in range(len(grid))]
print(seen)
seen[0][0]=1
print(seen)

a=[[0]*len(grid[0])]*len(grid)
print(a)
a[0][0]=1
print(a)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

输出结果如下:

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[[1, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0]]

可见第一种创建数组的方法是正确的,而第二种给一个元素赋值,对应的所有行相同列都会赋值。

总结

创建一个4*5的二维数组正确格式如下:

ls=[[0]*5 for _ in range(4)]
  • 1

而以下面这种方式创建二维数组时赋值会出现错误:

ls=[[0]*5]*4
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/357247
推荐阅读
相关标签
  

闽ICP备14008679号