擅长:python、mysql、java
<p>是否确定在打印<code>x</code>之前调用函数:</p>
<pre><code>def mutation(x):
# your code without the trailing comma
mutation(x)
print(x)
</code></pre>
<p>在Python中,创建新列表通常比修改旧列表更可取。我会这样编写您的第一个函数(我将整数转换为布尔值,因为您只是翻转它们:</p>
<pre><code>x = [False, False, False, False]
def mutation(x, muta):
return [not e if random.random() < muta else e
for e in x]
</code></pre>
<p>通过再次分配给<code>x</code>来更改它:</p>
<pre><code>x = mutation(x, .5)
</code></pre>
<p>如果删除<code>return</code>后面的逗号,则原始函数可以正常工作:</p>
<pre><code>def mutation(x, muta):
for i in range(len(x)):
if random.random() < muta:
x[i] = type(x[i])(not x[i])
return x
x = [False, False, False, False]
mutation(x, .5)
Out[8]: [False, False, True, False]
mutation(x, .5)
Out[9]: [True, True, True, False]
</code></pre>