基于python for in if 连着写与分开写的区别说明

 更新时间:2021年03月25日 10:36:35   作者:woailyoo0000  
这篇文章主要介绍了基于python for in if 连着写与分开写的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

如下:

links.extend(link for link in get_links(html) if re.match(link_regex, link))
# 上面的语句分开写,如下
# 但下面需要使用links.append,如果依然使用links.extend会出现错误的结果
for link in get_links(html):
  if re.match(link_regex, link):
     links.append(link)

让我们用ipython做个实验:

由上图可以看出,for in if 连击推导式隐式的将link由str转变为了list,而分开写是不会帮我们转换的,所以需要使用append把整个str加入到list.

补充:python的for i in list 陷阱

d = [1,2,3,4,5]
for i in d:
  d.remove(i)
print d

结果是 :

[2, 4]

这个陷阱比较隐蔽,我再用白盒子测试的时候,发现了这个bug,大致原因就是remove d[0]之后,i 自动变成了 d[1], 但是 d已经变成了 d[2,3,4,5],所以i=d[1]就悲催的指向了3,跳过了2!

看来python还是要注意了解底层实现啊!

解决办法是

d = [1,2,3,4,5]
for i in d[:]:
  d.remove(i)
print d

就可以实现边遍历边删除了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Python 阶乘详解

    Python 阶乘详解

    这篇文章主要介绍了详解用python的阶乘,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-10-10
  • 关于Pyinstaller闪退的补救措施

    关于Pyinstaller闪退的补救措施

    这篇文章主要介绍了关于Pyinstaller闪退的补救措施,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • pytorch教程resnet.py的实现文件源码分析

    pytorch教程resnet.py的实现文件源码分析

    torchvision.models这个包中包含alexnet、densenet、inception、resnet、squeezenet、vgg等常用的网络结构,并且提供了预训练模型,可以通过简单调用来读取网络结构和预训练模型
    2021-09-09
  • PyQt5 如何让界面和逻辑分离的方法

    PyQt5 如何让界面和逻辑分离的方法

    这篇文章主要介绍了PyQt5 如何让界面和逻辑分离的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色

    Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色

    这篇文章主要介绍了Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色,在文章末尾有一个小训练——是将所学得的图像颜色修改应用为画板一般的刷新,需要的朋友可以参考下
    2020-03-03
  • Python实现用户名和密码登录

    Python实现用户名和密码登录

    这篇文章主要为大家详细介绍了Python实现用户名和密码登录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Node.js 和 Python之间该选择哪个?

    Node.js 和 Python之间该选择哪个?

    这篇文章主要介绍了Node.js 和 Python之间的优劣,并得出结论,希望能为你在项目选择哪种技术时提供一些帮助。感兴趣的朋友可以了解下
    2020-08-08
  • 手把手教你用Django执行原生SQL的方法

    手把手教你用Django执行原生SQL的方法

    这篇文章主要介绍了手把手教你用Django执行原生SQL的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • python斯皮尔曼spearman相关性分析实例

    python斯皮尔曼spearman相关性分析实例

    这篇文章主要为大家介绍了python斯皮尔曼spearman相关性分析实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 深度学习入门之Pytorch 数据增强的实现

    深度学习入门之Pytorch 数据增强的实现

    这篇文章主要介绍了深度学习入门之Pytorch 数据增强的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论