day13-python语言基础之迭代器和生成器

python语言基础之迭代器和生成器

请添加图片描述

1、什么是迭代器(iter)

1)迭代器是容器型数据类型;
2)创建迭代器:
a.将其他序列转换成迭代器
b.创建生成器
3)特点:
a.打印不能查看迭代器中的元素
b.不能通过len获取迭代器中元素的个数
c.如果要使用元素必须将元素从迭代器中取出来,并且取出来之后就无法放回去

2、获取元素

1)获取单个元素:next(迭代器) - 获取的是最上面的元素
不管用任何方式获取到了迭代器中的元素,那么被取到的元素就会从迭代器里面消失

3、什么是生成器-generator

生成器是一种容器;也是一种特殊的迭代器(具备迭代器的特点),获取元素的方式和迭代器一样,查看迭代其中的元素需要转换类型

4、怎么创建生成器

调用带有yield关键字的函数就可以的得到一个生成器,调用普通函数就会执行函数体,并且获取函数返回值(函数调用表达式的值就是函数的返回值);如果调用的函数中有yield,那么调用函数的时候就不会执行函数体,也不会获取函数返回值,函数调用表达式的值是一个生成器对象

请添加图片描述

5、控制生成器元素的个数和元素

调用函数创建的生成器中有多少元素,每个元素是什么由执行完函数体会遇到几次yield以及每次遇到yield的时候后面的数据决定的

扑克牌游戏

def get_pock():
	nums = [num for num in range(2, 11)] + list('JQAK')
    colors = ['红心','黑桃','方块','梅花']
    for num in nums:
        for color in colors:
            yield num + color
    yield '大王'
    yield '小王'
gen1 = get_pock()
print(list(gen1))

请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值