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 相关文章推荐
DJANGO-ALLAUTH社交用户系统的安装配置
Nov 18 Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 Python
Flask-WTF表单的使用方法
Jul 12 Python
python内存动态分配过程详解
Jul 15 Python
django 信号调度机制详解
Jul 19 Python
Django Celery异步任务队列的实现
Jul 24 Python
Django stark组件使用及原理详解
Aug 22 Python
python 实现list或string按指定分段
Dec 25 Python
Python实现屏幕录制功能的代码
Mar 02 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
Apr 08 Python
Python unittest基本使用方法代码实例
Jun 29 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 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数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
深入Nginx + PHP 缓存详解
2013/07/11 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
yii用户注册表单验证实例
2015/12/26 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
python仿抖音表白神器
2019/04/08 Python
Python中six模块基础用法
2019/12/08 Python
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
我的网上商城创业计划书
2013/12/26 职场文书
网吧消防安全制度
2014/01/28 职场文书
土木工程求职信
2014/05/29 职场文书
保护动物的标语
2014/06/11 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
python绘制箱型图
2021/04/27 Python