想要将一个列表中大于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)
一只甜甜圈
TA贡献1836条经验 获得超5个赞
问题在于:你不能在forin遍历list的同时去修改该list。正确的做法:把符合条件(小于等于15)的数加到另外一个list里使用列表推导生成新的list
添加回答
举报
0/150
提交
取消