• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
aimi0014
博客园    首页    新随笔    联系   管理    订阅  订阅
复习笔记

列表生成式:

[x*2 for x in range(10

生成器(generator object)

​ 创建生成器两种方式:

1 (x*2 for x in range (10)) >>>>>>>>>>>generator object

2 def f():
    
    yield
  f() >>>>>>>>generator object  

​ 生成器的方法:

1 next (f()) >>>>>>>>>>>>>>>>>计算出一个值

​ 注意:生成器在创建的时候已经决定了能计算出值 的个数,调用next的次数超过这个值就会报stopIteration

​ 遍历所有元素可以通过for循环:

for i in [1,2,3]:
    print i 
			for 循环内部做了三件事:
  1. 调用对象的iter()方法,返回一个迭代器对象

  ```python
  while:
  	try:
        i=next (list_iterator)
  	except StopIteration:
          break
          
  
  ```
  1. send():

    def f ():
        print ("ok1")
        
        ret = yield 1
        
        print ("ok2")
        
        yield 2
    f().send(None) #等价于next(f())   
    f().send("ASC") #在第二次传入参数 ret = "ASC" 第一次用send传空值
        
        
    

4.迭代器

​ 1.满足迭代器协议:

​ 1.内部有next方法

​ 2.内部有Iter()方法

li = [1,2,3,]:Itrerble #(内部有Iter方法)>>>>>>
i = Iter(li)
for x in i:
	print(x)
posted on 2022-09-18 17:52  艾明  阅读(12)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3