为了账号安全,请及时绑定邮箱和手机立即绑定

大佬们遇到过这个问题吗?python中简单的控制流问题求老司机指点!

大佬们遇到过这个问题吗?python中简单的控制流问题求老司机指点!

繁华开满天机 2019-10-10 15:50:53
想要将一个列表中大于15的整数删去,代码如下。然而,运行后只删除了16,18等,17,19,21,23等没有删除控制流为何出了问题?烦请解答,感激不尽a=[11,12,13,14,15,16,17,18,19,20,21,22,23]forkina:print(k)ifk>15:a.remove(k)continueprint(a)
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

在对一个list遍历的时候,不要修改list里面的内容
可以试试下面的代码:
a=[11,12,13,14,15,16,17,18,19,20,21,22,23]
b=[]
foriina:
ifi<=15:
b.append(i)
print(b)
当然写成这样更清楚:
a=[11,12,13,14,15,16,17,18,19,20,21,22,23]
a=[iforiinaifi<=15]
print(a)
                            
查看完整回答
反对 回复 2019-10-10
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

问题在于:你不能在forin遍历list的同时去修改该list。
正确的做法:
把符合条件(小于等于15)的数加到另外一个list里
使用列表推导生成新的list
                            
查看完整回答
反对 回复 2019-10-10
  • 2 回答
  • 0 关注
  • 292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信