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