python列表删除和多重循环退出原理详解

  

在学习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,所以最终还有一个6

  

python中多重循环如何退出

  

我们在进行嵌套循环的时候,需要立刻退出,用破是不行的:

        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列表删除和多重循环退出原理详解