I am fiddling with lists and I cannot understand why a copy of the list is modifing the original list.
winC is a set of parameters that will modify a given list.
originList is untouched.
Then newList is copy of originList, so that I can modify it and compare the results with the previous one.
winC = [[[1, 1, 1], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [1, 1, 1], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [1, 1, 1]],
[[1, 0, 0], [1, 0, 0], [1, 0, 0]],
[[0, 1, 0], [0, 1, 0], [0, 1, 0]],
[[0, 0, 1], [0, 0, 1], [0, 0, 1]],
[[1, 0, 0], [0, 1, 0], [0, 0, 1]],
[[0, 0, 1], [0, 1, 0], [1, 0, 0]]]
originList = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
newList = originList.copy()
print(originList)
print(newList)
for x in range(len(winC)):
for y in range(len(winC[x])):
for z in range(len(winC[x][y])):
if winC[x][y][z] == 1:
newList[y][z] += 1 ## Note that newList is being modified, not originList
print(originList)
print(newList)
When I run this code, originList and newList are changed, despite the fact that I only modified newList. I've tried using .copy(), list(originList) and originList[:], and none of those seem to work. I am still using Python 3.9.6 What should I do?