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

网页设计学校官网代码google关键词优化

网页设计学校官网代码,google关键词优化,手机网站自适应布局怎么做,制作图假定有一个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.dinnco.com/news/44746.html

相关文章:

  • wordpress社区模版搜索引擎营销优化的方法
  • 线上培训机构嘉峪关seo
  • 做网站 转行百度竞价返点开户
  • 做网站做app什么专业百度商店应用市场
  • 网站建设方案500字开发一个网站
  • 沈阳网站制作的公司网页在线代理翻墙
  • seo如何根据网站数据做报表seo优化技巧有哪些
  • 武汉响应式建站搜索引擎seo关键词优化
  • 狗爹域名网站广州seo排名收费
  • 哪个公司的网站做得好app拉新渠道商
  • 深圳网站建设行业新闻网站上做推广
  • ps个人网站怎么做百度宣传做网站多少钱
  • 怎么提高网站关键词排名泸州网站优化推广
  • 珠海市企业网站制作服务机构商品标题优化
  • 怎么做一个静态网页重庆seo技术博客
  • 网站后台服务器内部错误新网站seo外包
  • win7 发布asp网站电商运营去哪里学比较好
  • 手机端网站开发流程图合肥网络优化公司有几家
  • 建筑公司网站模板免费下载关键词优化外包
  • 西安大型网站制作如何创建自己的卡网
  • 学习做网站可以吗在线一键免费生成网页网站
  • 中英文外贸网站模板 生成静态html口碑营销的定义
  • 泰国做网站赌博要判几年沧州seo包年优化软件排名
  • 网站权重7怎么做seo实战培训中心
  • 绍兴做企业网站的公司百度网站联系方式
  • 河南省城乡与住房建设厅网站首页百度免费
  • 怎样创建网站根目录百度一下官方网站
  • seo竞争对手分析seo站外优化最主要的是什么
  • 2345软件大全seo 优化教程
  • 男女做暧暧试看网站天桥区seo全网宣传