美文网首页
Python数组初始化陷阱

Python数组初始化陷阱

作者: Kyrielight | 来源:发表于2022-07-18 23:25 被阅读0次

    比较以下两种数组初始化:

    arr1 = [[0]*5]*5
    
    arr2 = [[0 for i in range(5)] for j in range(5)]
    

    乍看都是初始化一个5*5的二维数组,但若都执行相同的赋值语句后,结果却大不一样:

    arr1[0][0] = 1 # arr1会变为[[1,0,0,0,0],[1,0,0,0,0],[1,0,0,0,0],[1,0,0,0,0],[1,0,0,0,0]]
    arr2[0][0] = 1 # arr2会变为[[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]]
    

    下图解释了arr1的初始化和赋值的逻辑


    arr1初始化 arr1赋值

    相关文章

      网友评论

          本文标题:Python数组初始化陷阱

          本文链接:https://www.haomeiwen.com/subject/dlzsirtx.html