擅长:python、mysql、java
<p>显然,您在删除列表之前先打印列表。您想在删除后打印它。您还应该复制列表,而不是使用=</p>
<pre><code>keys = ['Messi', 'Neymar', 'Xavi', 'Iniesta']
tmp_keys = keys[:]
length = len(keys)
for player in keys:
if player in tmp_keys:
print player + " is out"
tmp_keys.remove(player)
print tmp_keys
tmp_keys = keys[:]
</code></pre>
<p><a href="http://docs.python.org/2/library/copy.html" rel="nofollow">http://docs.python.org/2/library/copy.html</a></p>
<p>Python中的赋值语句不复制对象,而是在目标和对象之间创建绑定。对于可变或包含可变项的集合,有时需要一个副本,以便一个可以更改一个副本而不更改另一个副本。你知道吗</p>
<p>由于list没有copy(),因此需要另一种方法来防止对tmp\u键的更改也影响键</p>
<p>举个例子</p>
<pre><code>keys = ['a', 'b', 'c', 'd', 'e']
tmp_keys = keys
del tmp_keys(3)
print keys
</code></pre>
<p>输出:a b c e</p>
<pre><code>tmp_keys = keys[:]
print tmp_keys
print keys
</code></pre>
<p>输出:</p>
<pre><code>a b c e
a b c d e
</code></pre>