迭代器和生成器

‘’‘迭代器:通俗的说就是可以通过for循环作用的数据对象,例如之前学习过的数据结构,字符串、列表、元组、字典等
而迭代器不仅是可迭代的,还可以被next()函数调用并不断返回下一个值,把这种对象成为迭代器
生成器:有时候需要创建一个包含几十万甚至上百万个元素的列表,需要占用很大的存储空间,如果仅仅需要访问前几个元素,
匿名后面绝大多数元素占用的空间都白白浪费了,在python中,这种一边循环一边计算的机制,称为生成器:generator,通过函数创建生成器,yeild
‘’’

#可迭代
some_dict={‘a’:1,‘b’:2,‘c’:3}
for key in some_dict:
print(key)
#迭代器
#1、iter(),创建迭代器
#2、next()
dict_itcrator=iter(some_dict)
print(dict_itcrator)
print(next(dict_itcrator))
print(next(dict_itcrator))
print(next(dict_itcrator))
#处理通过next函数调用迭代器,还可以通过for循环调用迭代器
dict_itcrator=iter(some_dict)
for i in dict_itcrator:
print(i)

#生成器
‘’‘是一种计算机制,指一边循环一边计算
‘’’
#列表推导式
L=[xx for x in range(5)]
print(L)
#创建生成器
g=(x
x for x in range(5))
print(g)
#调用生成器的第一种方式next函数,第二种for循环
print(next(g))

for i in g:
print(i)

#通过函数创建生成器,yeild
#定义一个普通函数:生成一个等差数列
def seq(max):
x=1
d=2
while x<max:
print(x)
x+=d #x=x+d
seq(10)
#yeild生成器
def seq1(max):
x=1
d=2
while x<max:
yield(x)
x+=d #x=x+d
print(seq1(10))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值