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

python中简单的控制流问题

python中简单的控制流问题

蝴蝶刀刀 2019-10-25 21:35:20
想要将一个列表中大于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 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

在对一个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-25
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

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

添加回答

举报

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