在学习python的时候,会有一些梗非常不适应,在此列举列表删除和多重循环退出的例子:
列表删除里面的坑
比如我们有一个列表里面有很多相同的值,假如:num=[第1、6、6、3、6,2,10,2100],我想去掉6,可以这样写:
num=[1、6、6、3、6, 2, 10, 2100] 在num n: 如果n==6: nums.remove (n) nums.sort () 打印(num) #输出结果:[1、2、2、3、6、10、100]
排序显示后列表中还有一个6,下面是慢动作分解:
指数:0,num: 1
指数:1,num: 6
前:[第1、6、6、3、6,2,10日,2,100]后:(1、6、3、6 2,2,100]
引用>
指数:2,num: 3
指数:3,num: 6
前:(1、6、3、6、2、10、2,100]
后:(1、3、6、2 10 2,100]
指数:4,num: 10
指数:5,num: 2
指数:6,num: 100
最后:[1、3、6、2 10 2,100]
用排序排序后如结果所示第一次循环到6的时候,下标为1,这时删除了指数[1]=6,
接着在新列表中继续删除,指数[2]=3,就直接略过了新列表中的指数[1]=6,所以最终还有一个6python中多重循环如何退出
我们在进行嵌套循环的时候,需要立刻退出,用破是不行的:
def有趣(): 因为我在范围(3): 因为我在范围(10、13): 打印(“内心:“,我) 如果我==12: #返回 打破#会循环输出3次 打印(“出来:“,我) print(结束) 有趣的()输出结果如下:
内部:10
引用>
内部:11
内部:12
出:12
内部:10
内部:11
内部:12
出:12
内部:10
内部:11
内部:12
出:12
结束解决办法:直接或返回者加变量控制
def有趣(): 因为我在范围(3): 因为我在范围(10、13): 打印(“内心:“,我) 如果我==12: 返回 #打破#会循环输出3次 打印(“出来:“,我) print(结束) 有趣的()打破规范都是只结束最近一层循环的.python在为用的是迭代器循环,我在范围(3)并不受我==12影响而结束最外层循环,
因为我=12也只是我的一个临时指向而已,python一切皆对象决定,我只是指向值为12的对象的id,
打破到外层循环会重新指向迭代器范围(3)的一个对象。
所以多重循环用打破不能退出,我们可以用回报来解决。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
python列表删除和多重循环退出原理详解