岂曰无衣264 2022-06-16 13:12 采纳率: 98.8%
浏览 36
已结题

为什么这里输出是[3,6],而不是3

img

img


为什么这里输出的是[3,6],而不是[3],想要详细一点的解答

  • 写回答

5条回答 默认 最新

  • A Python 萌新花花 2022-06-16 13:24
    关注

    因为for在开始的时候,执行到的索引是固定的,所以如果你remove了东西,那么原来的所有数就会往左移,但是索引固定了,就导致remove的时候,一下跨了两个数。
    【6,3,6,6,6】原来是这个,索引在0,remove了第一个6
    变成【3,6,6,6】但是这个时候,索引+1,变成1了。这时候就“不对劲“了。因为索引为1的是6,不是原来的3。
    然后索引为1,那么就会remove现在的第一个6,变成【3,6,6】。
    这个时候就更”不对劲“了。因为现在索引+1,变成2了。2的时候虽然会remove掉最后一个6,但是你会发现这个时候剩了一个6。
    所以,解决方法就是倒序来remove,从尾开始,这样索引不会变

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 请采纳用户回复 6月16日
  • 创建了问题 6月16日