美文网首页
Python的list乘法【巨坑】

Python的list乘法【巨坑】

作者: 汐氿 | 来源:发表于2017-11-07 23:53 被阅读0次

    模式识别要求写混合属性相异性矩阵的算法,我用python语言来写的。

    里面二元矩阵的初始化我直接用的list的乘法,看起来没什么问题。。初始化完是d = [[0,0,0],[0,0,0],[0,0,0]]

    但是判断l[0]和l[1]不同之后,除了d[1][0]之外,d[0][0]和d[2][0]都变成了1!


    *操作符在实现上是复制了值的引用,而不是创建了新的对象。所以list的三个item指向的是同一个地址!

    *操作符对于不可变对象是安全的,对于可变对象要小心。

    而python里list是可变对象,tuple是不可变对象。

    将上述初始化声明换成以下就ok了


    相关文章

      网友评论

          本文标题:Python的list乘法【巨坑】

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