当前位置: 首页 > news >正文

网页设计学校官网代码网奇seo赚钱培训

网页设计学校官网代码,网奇seo赚钱培训,想做一个公司的网站去哪可以做,wordpress 国外 企业主题假定有一个Python列表,比如[CFFEX.IF, CFFEX.TS,SHFE.FU],现在需要将其中带‘CFFEX’前缀的所有元素都删除。在使用列表推导式一行代码搞定之前,用了一种最朴素的遍历删除方法,结果出现了意想不到的的问题。复盘了下,结…

假定有一个Python列表,比如['CFFEX.IF', 'CFFEX.TS','SHFE.FU'],现在需要将其中带‘CFFEX’前缀的所有元素都删除。在使用列表推导式一行代码搞定之前,用了一种最朴素的遍历删除方法,结果出现了意想不到的的问题。复盘了下,结论非常有意思,故记录下来,引以为戒。

方法1:用enumerate()枚举遍历,定位到元素后,使用pop()或del方法直接删除该元素。

结果输出发现,会出现删不完整的奇怪现象。正确结果应该是输出['SHFE.FU'],结果发现第2个元素未被删除!

原因解析:

enumerate()函数会返回一个游标,以及该游标位置的元素。for循环首次调用返回0,'CFFEX.IF',由于满足条件0位置元素被删除。然后进入下一次循环,此时会返回1, 'SHFE.FU',而不是我们预期的1, 'CFFEX.TS',由于原来第2个元素被跳过,导致未被删除。

根本原因,是因为删除第1个元素后,列表发生了变化,而enumerate()会基于新列表进行游标遍历,从而出现了上面的问题。

一种解决办法,就是删除元素后,游标保持不动,还保留在原位置,比如前面删除了0位置元素后,游标仍指向0,同时将列表长度减1。这个办法就是方法3的主要思路。

方法2:用for i in range(len(varieties))循环遍历删除

方法1中存在的bug依然存在,同时代码还会报错,提示游标越界!

原因也很明显,for循环里range(len(varieties))已经固定了原来列表的长度,比如本例中3个元素,range()会依次遍历0、1、2三个位置,删除0元素后,游标1会指向'SHFE.FU',出现了方法1中同样的bug,但跟方法1不同的是,它结束游标1处理后,还会继续处理游标2位置,在访问varieties[2]时报游标越界错误!方法1中没有报错,是因为它调用enumerate()不会出现越界错误。

方法3:采用笨办法,仅供演示,真实情况下不可能这么写

解决方法1的bug,具体逻辑见方法1中相关描述。

方法4:使用列表推导式,一行代码搞定,简洁优美无bug

[x for x in varieties if not x.startswith(prefix)]

附录:Python示例代码(jupyter环境)

改写后的代码

http://www.ritt.cn/news/5390.html

相关文章:

  • 威海做网站的哪家好百度统计怎么使用
  • 做网站用asp div代码谷歌seo和百度seo区别
  • 政府网站建设项目背景太原企业网站建设
  • wordpress关闭谷歌字体系统优化软件十大排名
  • 大学生创意产品设计方案福州百度快速优化排名
  • 海南响应式网站建设制作网络广告有哪些形式
  • 用帝国做的网站只收录首页软文写作平台
  • .tv做网站怎么样产品推广ppt范例
  • 关于购物网站开发的开题报告关键词优化排名怎么做
  • 做网站需要注意哪些提升seo排名
  • 甘肃省建设厅门户网站营销培训总结
  • 网站介绍页面免费b站推广网站不用下载
  • 做外贸网站服务器要选择哪里的网络seo推广
  • 做360网站优化站长工具友链检测
  • 网站的模版可以换吗手机百度如何发布作品
  • 东莞品牌网站设计公司计公司网络营销推广方案ppt
  • 南昌网站建设公司统计站老站长推荐草莓
  • 玉林做绿化苗木网站的是哪个单位如何在各大平台推广
  • wordpress个人展示网站6最新seo操作
  • 宜兴营销型网站建设班级优化大师官方免费下载
  • 做简历的网站有百度网盘资源免费搜索引擎入口
  • 西安将军山网站建设软文营销文章300字
  • 义乌网图科技有限公司电话seo网站推广建站服务商
  • 如何建立自己免费网站不屏蔽的国外搜索引擎
  • wordpress 主seo厂家电话
  • 网站开发用到的编程浙江企业网站建设
  • 网站布局有哪些海南百度首页广告
  • 新网网站建设跨界营销案例
  • 大学生家教网站开发中国十大公关公司排名
  • 做词云的网站百度投放广告平台