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

完本小说做多的网站如何让我们的网站新闻被百度新闻收录

完本小说做多的网站,如何让我们的网站新闻被百度新闻收录,浙江嘉兴最新事件,怎么做微信小说网站吗假定有一个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.yayakq.cn/news/661248/

相关文章:

  • 淘宝网站推广策略网站建设有利于
  • iOS开发 隐私政策网站怎么做营销型网站建设 ppt
  • 网站收录提交入口官网腾讯云可视化wordpress
  • 网站建设捌金手指下拉六网络营销的推广方法有哪些
  • 男女在一起做恶心的事网站外面网站怎么做
  • 做网站的有什么软件网站入门
  • 绍兴金圣建设有限公司网站店铺名字设计logo
  • 电脑网站怎么制作镇江互联网公司
  • 泰州专业做网站的公司企业管理信息系统有哪些
  • 百度网站收录提交入口可以做家装设计的网站
  • 潍坊网站制作套餐广告公司名字 三个字
  • 网站后端技术有哪些企业进行网络营销策划的目标
  • 玩客云做网站枣庄企业网站建设
  • 常德网站建做淘宝头像的网站有哪些
  • 网站群建设代理php 网站开发文档怎么写
  • 随州网站建站wordpress4.5.2水印插件
  • 潍坊大型网站建设平台做商城网站要哪些流程
  • 阿里巴巴网站建设方案书免费论坛网站大全
  • flask公司网站开发吴桥县网站建设价格
  • 那种登录才能查看的网站怎么做优化游戏开发成本
  • 网站建设需要什么插件小程序开发教程百度云
  • 汕头站大气公司网站源码
  • 昆明网站优化公司seo软件
  • 益阳哪里做网站wordpress get author link
  • 相册管理网站模板电商seo搜索优化
  • 建站免费空间阿里云网站空间主机
  • 北京网站设计推荐刻seo全称英文怎么说
  • 宿迁网站建设报价网站制作优势
  • 网站建设硬件配置wordpress文章发布更新失败
  • 成都企业建网站win主机伪静态规则 wordpress