擅长:python、mysql、java
<p>假设您有类似<code>word1 = 'hello'</code>和<code>word2 = 'nello'</code>的东西,那么您可以这样做:</p>
<pre class="lang-py prettyprint-override"><code>sum(word1[i] != word2[i] for i in range(min(len(word1), len(word2))))
</code></pre>
<p>您的无法工作的原因是您如何使用for循环:</p>
<pre class="lang-py prettyprint-override"><code>for i in answer and right:
</code></pre>
<p>如果<code>answer</code>是<code>['h', 'e', 'l', 'l', 'o']</code>,那么<code>i</code>将是该列表中的每个字符。只要计算为<code>right</code>的是<code>True</code>,并且因为<code>right</code>是一个非空列表,它就会。所以<code>i</code>将是<code>'hello'</code>中的每个字符,这就是为什么会出现错误</p>
<p>编辑:for循环的更简单版本:</p>
<pre class="lang-py prettyprint-override"><code>for i in range(len(answer)):
if answer[i] != right[i]:
w = w + 1
</code></pre>