• Python之 迭代器 列表解析器


    回顾:

        1、动态语言

          sys.getrefcount()  对象被引用的次数。

          增加对象引用次数的场景:以赋值方式创建对象;对象作为某容器的元素时;被当做参数传递给函数时;为对象创建另外的变量名;

          减少引用计数:引用此对象的某变量名被显式销毁 del x ;给引用此对象的变量名重新赋值;从容器中移除对象,list.pop();容器本身被销毁;

    完备和非完备遍历

    Python迭代器

    又称游标,是程序设计的软件设计模式,是一种可在容器物件上实现元素遍历的接口。是一种特殊的数据结构,在Python中,也是以对象存在的。

    iterable 可迭代对象 :对象实现了__iter__方法;用户自定义的一些包含了__iter__()或者__getitem__方法的类;序列类型list、str、tuple。非序列类型 dict,file等      支持每次返回自己所包含的一个成员对象。

    调用__iter__方法 就在内存中创建了一个迭代器,通过next方法遍历其元素,直到遍历结束。不会再从头开始。

    iter()函数可以实现生产一个迭代器。

    迭代器是遵循迭代协议的对象,for循环开始时,会通过迭代协议传递给iter()内置函数,从而能够从可迭代对象中获得一个迭代器,返回的对象含有需要的next()方法。

    列表解析:是迭代机制的一种应用。用于基于已有的列表高效的实现新的列表。

    [expression for iter_var in iterable(可迭代对象)]

    l2 = [ i ** 2 for i in l1]

    [expression for iter_var in iterable if cond_expr]  通过if判断符合条件的元素

  • 相关阅读:
    [Web安全] XXE漏洞攻防学习(中)
    [Web安全] XXE漏洞攻防学习(上)
    [转]kali中eth0网卡突然消失解决方案
    [漏洞复现]CVE-2018-4887 Flash 0day
    [漏洞复现]CVE-2010-2883 Adobe Reader 打开pdf电脑即刻中招
    [漏洞复现] CVE-2017-11882 通杀所有Office版本
    墨菲定律:Mac本硬盘坏了
    独立思考
    阅读书单
    2020未来小思考
  • 原文地址:https://www.cnblogs.com/Beny-Bruce/p/5014703.html
Copyright © 2020-2023  润新知