擅长:python、mysql、java
<p>当前代码将<code>z</code>创建为<code>y</code>本身的<em>引用。也就是说,<code>z</code>和<code>y</code>都指向内存中的同一个list对象。你知道吗</p>
<p>要解决此问题,请将<code>z</code>作为<code>y</code>的<em>副本,而不是对它的引用:</p>
<pre><code>z = y[:]
</code></pre>
<p>下面是一个演示:</p>
<pre><code>>>> x = 'x'
>>> y = []
>>> y.append(x)
>>> z = y[:] # Make z a copy of y
>>> z.append('a')
>>> x = 'X'
>>> print "x:", x
x: X
>>> print "y:", y
y: ['x']
>>> print "z:", z
z: ['x', 'a']
>>>
</code></pre>