擅长:python、mysql、java
<p>我认为第一个错误是错误使用for循环变量。
您已经将“item”定义为for循环变量,但在isinstance和append中使用的是“i”</p>
<p>另外,当你从列表中弹出元素时,你正在改变位置,什么会干扰循环。for循环从元素0(第一个元素)开始,在您的代码中是数字“1”,当程序结束第一次迭代时,它现在将使用元素1(第二个元素),但是当它弹出第一个元素时,第一个元素是字母“a”,第二个是数字“2”,什么会使程序每次迭代都忽略一个元素</p>
<p>我认为你想要的代码是这样的:</p>
<pre><code>>>> for item in lst:
... if isinstance(item, int):
... lstInt.append(item)
... if isinstance(item, str):
... lststr.append(item)
... if isinstance(item, float):
... lstflt.append(item)
</code></pre>