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中二维阵列的变换实例
Oct 09 Python
Python中datetime模块参考手册
Jan 13 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
python爬虫之自制英汉字典
Jun 24 Python
浅谈Django中view对数据库的调用方法
Jul 18 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
python二维键值数组生成转json的例子
Dec 06 Python
解析PyCharm Python运行权限问题
Jan 08 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
python实现socket简单通信的示例代码
Apr 13 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
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
python3实现跳一跳点击跳跃
2018/01/08 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
Python文件操作的面试题
2013/06/22 面试题
成教自我鉴定
2013/10/27 职场文书
国家助学金获奖感言
2014/01/31 职场文书
英语专业个人求职信范文
2014/02/01 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
学校交通安全责任书
2014/08/25 职场文书
护士节活动总结
2014/08/29 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
入党转正申请报告
2015/05/15 职场文书
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js