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


Posted in Python onMarch 26, 2020

在学习python的时候,会有一些梗非常不适应,在此列举列表删除和多重循环退出的例子:

列表删除里面的坑

比如我们有一个列表里面有很多相同的值,假如:nums=[1,6,6,3,6,2,10,2,100],我想去掉6,可以这样写:

nums=[1,6,6,3,6,2,10,2,100]
 for n in nums:
   if n==6:
     nums.remove(n)
 nums.sort()
 print(nums)#输出结果:[1, 2, 2, 3, 6, 10, 100]

排序显示后列表中还有一个6,下面是慢动作分解:

index :0,num:1

index :1,num:6
before: [1, 6, 6, 3, 6, 2, 10, 2, 100]

after: [1, 6, 3, 6, 2, 10, 2, 100]
index :2,num:3
index :3,num:6
before: [1, 6, 3, 6, 2, 10, 2, 100]
after: [1, 3, 6, 2, 10, 2, 100]
index :4,num:10
index :5,num:2
index :6,num:100
final: [1, 3, 6, 2, 10, 2, 100]

用sort排序后如结果所示第一次循环到6的时候,下标为1,这时删除了index[1]=6,
接着在新列表中继续删除,index[2]=3,就直接略过了新列表中的index[1]=6,所以最终还有一个6

python中多重循环如何退出

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

def fun():
  for i in range(3):
    for i in range(10,13):
      print("inner:",i)
      if i==12:
       # return
        break#会循环输出3次
    print("outter:",i)
  print('end')
fun()

输出结果如下:

inner: 10
inner: 11
inner: 12
outter: 12
inner: 10
inner: 11
inner: 12
outter: 12
inner: 10
inner: 11
inner: 12
outter: 12
end

解决办法:直接return或者加变量控制

def fun():
  for i in range(3):
    for i in range(10,13):
      print("inner:",i)
      if i==12:
       return
        #break#会循环输出3次
    print("outter:",i)
  print('end')
fun()

break 规范都是只结束最近一层循环的。python 在for用的是迭代器循环,i in range(3)并不受i==12影响而结束最外层循环,

因为i = 12也只是i的一个临时指向而已,python一切皆对象决定,i只是指向值为12的对象的id,

break到外层循环会重新指向迭代器range(3)的一个对象。

所以多重循环用break不能退出,我们可以用return来解决。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python发腾讯微博代码分享
Jan 10 Python
python发送arp欺骗攻击代码分析
Jan 16 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
Python实现的redis分布式锁功能示例
May 29 Python
谈谈Python中的while循环语句
Mar 10 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
Jul 07 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python编写一个验证码图片数据标注GUI程序附源码
Dec 09 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
python爬虫请求头的使用
Dec 01 Python
python 爬取腾讯视频评论的实现步骤
Feb 18 Python
执行Python程序时模块报错问题
Mar 26 #Python
python3 正则表达式基础廖雪峰
Mar 25 #Python
python 6.7 编写printTable()函数表格打印(完整代码)
Mar 25 #Python
python实现人机五子棋
Mar 25 #Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 #Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 #Python
python自动下载图片的方法示例
Mar 25 #Python
You might like
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
php 传值赋值与引用赋值的区别
2010/12/29 PHP
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
原生js制作日历控件实例分享
2016/04/06 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python requests库用法实例详解
2018/08/14 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
python操作kafka实践的示例代码
2019/06/19 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
旅游管理专业个人求职信范文
2013/12/24 职场文书
小学生红领巾广播稿
2014/01/21 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
人事专员工作职责
2014/02/22 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书