Python基础学习(十二)

迭代器、生成器和模块

一、迭代器

1. 迭代器概念

什么是迭代器(iter)?
迭代器是容器型数据类型,可以同时保存多个数据;可以被遍历,也可以转换成列表和元组
打印迭代器的时候无法打印里面的元素;迭代器不支持len()函数操作
如果需要迭代器中的元素,必须将元素从迭代器中取出,而且一旦取出元素,这个元素在迭代器中就不存在了

2. 创建迭代器

方式一:通过iter将其他序列转换成迭代器
方式二:创建生成器对象(生成器可以看成是一种特殊的迭代器)

iter1 = iter('abc')
print(iter1)        # <str_iterator object at 0x000001CC98246D90>,地址,无法打印元素
# print(len(iter1))       # 报错:TypeError: object of type 'str_iterator' has no len()

3. 获取迭代器中的元素

获取单个元素: next(迭代器)

print(next(iter1))          # a
print(next(iter1))          # b
print(next(iter1))          # c
# print(next(iter1))        # 报错:StopIteration,已经取完了iter中的元素,iter中没有元素了,所以再取会报错

for x in iter1:
    print(f'x:{
     x}')       # 结果为空,没有任何元素

iter2 = iter([1, 2, 3, 4])
for x in iter2:
    print(f'x:{
     x}')

# print(next(iter2))         # 报错:StopIteration

iter3 = iter('hello')
print(list(iter3))
# print(next(iter3))          # 报错:StopIteration

二、生成器

1. 生成器(generator)

生成器是具备能够产生多个数据能力的一种容器
生成器在获取数据的时候和迭代器一样

2. 创建生成器

调用一个带有yield关键字的函数可以得到一个生成器对象
如果一个函数中有yield,那么这个函数在调用的时候不会执行函数体也不会获取返回值,而是得到一个生成器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值