博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python之 迭代器 列表解析器
阅读量:6254 次
发布时间:2019-06-22

本文共 773 字,大约阅读时间需要 2 分钟。

回顾:

    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判断符合条件的元素

 

转载于:https://www.cnblogs.com/Beny-Bruce/p/5014703.html

你可能感兴趣的文章
高通Qualcomm平台lk(light kernel)启动流程2——aboot_init()
查看>>
【LeetCode从零单排】No26.Remove Duplicates from Sorted Array
查看>>
java-CompletionService
查看>>
【前沿】TensorFlow Pytorch Keras代码实现深度学习大神Hinton NIPS2017 Capsule论文
查看>>
中断和异常的概念
查看>>
Xdebug是一个开放源代码的PHP程序调试器
查看>>
无线安全技术:移动医疗技术及应用概述
查看>>
携程数据库全线崩溃引热议 总结网友奇葩的“数据库门”
查看>>
【★】选择好游戏认准这30个特质!
查看>>
CIO与CMO推动数据驱动的营销战略
查看>>
IPv4还没终结 IPv6时代已悄然到来
查看>>
你所不知道的大数据:一条微博得到王思聪手机号
查看>>
不可思议的德国汉堡,一座不能被忽略的城市!
查看>>
【喜大普奔】GN5i华东华南可以购买啦
查看>>
Power AI:堪称机器学习的“破壁人”
查看>>
存储经济:立新还是利旧?
查看>>
云计算大会第三批议题:金融、医疗等六大行业
查看>>
自己种树自己乘凉 Infor启动成都东软学院教育联盟项目
查看>>
自动精简配置&重复数据删除核心技术点及其经济效应探究
查看>>
退伍军人建伪基站闯大祸:60万用户断网
查看>>