鱼C论坛

 找回密码
 立即注册
查看: 1871|回复: 3

[已解决]求助个for in的问题

[复制链接]
发表于 2017-8-25 16:03:58 | 显示全部楼层
本帖最后由 jbr 于 2017-8-25 16:05 编辑

我也是新手,我试着分析一下,先做个测试:
  1. for i in []:
  2.     print(1)
复制代码

结果是这个循环没执行,也就是说for循环不能在空列表中运行

再做第二个测试:
  1. list1 = ['a','a','a']
  2. for value in list1:
  3.     if value=='a':
  4.         list1.remove(value)
  5.         print(list1)
复制代码

给list1增加一个元素,每次循环打印出list1,结果为:
['a', 'a']
['a']
该结果表明,list1执行两次循环,第三次没有执行
于是可以推测,当第三次循环执行的时候list1会由单元素变为空列表,这时,for循环会把list1按照空列表对待,导致程序在第三次循环时中断。

因此可以增加一个对照列表list2,循环时for按照list2走,但修改的只是list1
  1. list1 = ['a','a']
  2. list2 = list1[:]
  3. for value in list2:
  4.     if value=='a':
  5.         list1.remove(value)
  6. print(list1)
复制代码


其实这也就是2楼版主的答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-1 10:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表