zoukankan      html  css  js  c++  java
  • python 创建二维数组

    创建一个3*3的2维数组

    错误方法1:

    array = [0, 0, 0]
    matrix = [array*3]
    print matrix

    输出:[[0,0,0,0,0,0,0,0,0]],错误

    错误方法2:

    array = [0, 0, 0]
    matrix = [array] * 3
    print matrix

    输出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]],看起来正确

    但是:

    matrix[0][1] = 1
    print matrix

    输出:[[0, 1, 0], [0, 1, 0], [0, 1, 0]],错误

    为什么呢?因为matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变。

    正确方法:

    方法1 直接定义
    
    matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
    
    方法2 间接定义
    
    matrix = [[0 for i in range(3)] for i in range(3)]

    参考:https://www.cnblogs.com/woshare/p/5823303.html

  • 相关阅读:
    isequal 和startswith 使用
    UVa10340
    UVa1368
    UVa455
    UVa1225
    UVa1586
    UVa 1585
    UVa10082
    UVa272
    NYOJ1
  • 原文地址:https://www.cnblogs.com/zealousness/p/10088432.html
Copyright © 2011-2022 走看看