I understand that, due to the way Python works x = []; y = x; x.append(1); y will print [1]. However, the reverse, say,
z = [1,2]
temp
Copying a list is easy ... Just slice it:
temp = z[:]
This will create a shallow copy -- mutations to elements in the list will show up in the elements in z, but not changes to temp directly.
For more general purposes, python has a copy module that you can use:
temp = copy.copy(z)
Or, possibly:
temp = copy.deepcopy(z)
Why not make temp a copy of z:
>>> z = [1, 2]
>>> temp = z[:]
>>> temp[1] = 3
>>> z
[1, 2]
>>> temp
[1, 3]
>>>
[:] easily makes a shallow copy of a list.
However, you might also be interested in copy.copy and copy.deepcopy, both of which come from Python's copy module.