python 可迭代对象之(列表解析,迭代器迭代) =>持续更新

1 篇文章 0 订阅
1 篇文章 0 订阅

前言:

self对于迭代器、生成器、列表解析等的理解远远没有进入化境,这是一个不断进步的过程,体系很混乱,想哪说哪。

正文

可迭代对象及对其的列表解析、迭代器迭代是python的一个重要特色、也是它所想强调的一点。

使用优势

使用迭代器迭代因为每次只返回对象的一个元素,因此可以有效地节省内存
同时 迭代器迭代列表解析 都可以比for 结果的循环有大约两倍的速度性能的提升,当然代码会显得更紧凑。

总结几个常见的内置迭代器
  1. range(3.x,对于2.x相当于已消失的xrange)
    range(0:up=value0:step=1) #默认从0开始,默认步进为1
    #(步进为第三个参数)至少需要传入value0作为上限(上限到不了)。
  2. zip 并行遍历,并且返回一个可迭代对象。
    zip(s1,s2) #s1,s2 可以是任何序列化的对象(不是序列化的诸# 如字典也可以,但往往无意义)。
  3. map 迭代函数映射 map(function,*arg) 返回可迭代对象。
  4. filter 迭代过滤 filter(function,*arg) 只保留符合function条件的值 返回可迭代对象。
  5. yield
        def gensquaures(x):
                for i in range(x):
                    yield i**2
  1. enumerate产生偏移和元素
     s='abcdef'
     for (offset,item) in enumerate(s):
         pass

yield表达式 将对象转换为可迭代对象(只能在函数内部使用)

迭代对象生成器

s=iter(s)#s 为要产生迭代的对象

手动迭代

next(s)(python 3.x, 2.6later)
s.__next__()(python 3.x)
s.next()(python 2.x)

文件是自己的迭代器
file=open('e:\mytext','r')
for line in file.readlines():
    print line
其他的内置迭代类型

dict.keys();dict.values();dict.items()都是可迭代对象

列表解析

L=[1,2,3,4,5,6]
L=[i**2 for i in L]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值