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

大佬们遇到过这个问题吗?python中简单的控制流问题

大佬们遇到过这个问题吗?python中简单的控制流问题

元芳怎么了 2019-10-16 10:11:02
想要将一个列表中大于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贡献1853条经验 获得超6个赞

在对一个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-16
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号