(十五)python 迭代器,生成器,字节串

目录

迭代器Iterator

    什么是迭代器

    迭代器相关函数

生成器 Generator(python 2.5 及以后)

    yield 语句

    生成器表达式:

迭代工具函数:

zip(iter1,iter2,iter3,...)

enumerate(iterable,start=0)

字节串bytes (也叫字节序列)

    bytes 与str 的区别:


迭代器Iterator

    迭代器是访问可迭代对象的工具(对象)

    什么是迭代器

        迭代器是指用iter(obj)函数返回的对象(实例)
        迭代器可以用next(it)函数获取可迭代对象的数据

    迭代器相关函数

        iter(iterable)从可迭代对象中返回一个迭代器,
        iterable 必须是一个能提供一个迭代器的对象
        next(iterator) 从迭代器iterator中获取下一个记录,
        如果无法获取下一条记录,则触发StopIreration异常通知
    说明:
        迭代器只能往前取值,不能后退

#示例:
L = [2,3,5,7]
it = inter(L)  #让可迭代对象L提供一个迭代器
next(it)  # 2
next(it)  # 3
next(it)  # 5
next(it)  # 7
next(it)  # StopIteration 异常通知

It = iter(range(1,10,3))
next(it)  # 1
next(it)  # 4
next(it)  # 7
next(it)  # StopIteration
#示例:
用while 语句遍历列表L中的全部元素
L = [2,3,5,7]
见iterator.py


L = [2,3,5,7]
it = iter(L)
while True:
    try:
        x = next(it)
        print(x)
    except StopIteration:
        break

练习:
    有一个集合:
        xiyou = {'唐僧','悟空','八戒','沙僧'}
    用for 语句来遍历所有元素如下:
        for x in xiyou:
            print(x)
        else:
            print("遍历结束")
    请将上面的for 语句改写为while语句及迭代器实现

xiyou = {'唐僧','悟空','八戒','沙僧'}
it = iter(xiyou)
while True:
    try:
        x = next(it)
        print(x)
    except StopIteration:
        print("遍历结束")
        break

生成器 Generator(python 2.5 及以后)

    什么是生成器
        生成器是能够动态提供数据的对象,生成器对象也是可迭代对象

    生成器有两种:
        1.生成器函数
        2.生成器表达式

    生成器函数定义:
        含有yield语句的函数是生成器函数,此函数被调用将返回一个生成器对象
        注:yield 翻译为(产生或生成)

    yield 语句

        语法:
            yield 表达式
        说明:
            yield 用于def 函数中,目的是将此函数作为生成器函数使用
            yield 用来生成数据,供迭代器的next(it) 函数使用


    生成器函数说明:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值