调用`oldList.copy()`创建的新列表仍引用旧列表

时间:2019-05-14 06:21:55

标签: python python-3.x

我希望创建一个列表副本以执行一些计算,而又不影响原始列表。但是,我的代码创建了对原始列表的命名引用。我对新列表所做的任何更改也将应用于旧列表。我在这里做什么错了?

tri = [[1],
    [2,8],
    [9,1,2]]

def tempR():
    ''' add up resulting triangle from RIGHT move '''
    # Generate triangle
    tempTri = tri.copy()
    del(tempTri[0])
    for r in range(len(tempTri)):
        del(tempTri[r][0])

    # Sum all the values
    pValue = 0
    for r in range(len(tempTri)):
        for d in tempTri[r]:
            pValue += d
    return(pValue)

tempR()
print(tri)
[[1], [8], [1, 2]]

我已经按照建议的in this discussion尝试了tempTri = list(tri)tempTri = tri.copy()

我想念什么?

0 个答案:

没有答案