09 迭代器、生成器


迭代器、生成器

  • 迭代器

    可迭代对象是指具有__iter__()方法的对象,包括列表、字符串、字典等
    #迭代器
    list=[1,2,3,4]
    #把list变成了可迭代对象
    new_list=list.__iter__()
    #1
    print(new_list.next())
    #2
    print(new_list.next())
    
    #迭代器的优点
    节省空间--惰性机制
    #迭代器的缺点
    一次性、不可逆
    
    #for循环、文件的open的本质都是迭代器
    s="alex"
    s1=s.__iter__()
    while True:
      try:
        print(s1.__next__())
      except StopIteration:
        break
    
  • 生成器

    #生成器创建方式2
    def test():
        #yield返回并暂停
        yield 1
        print(1)
        yield 2
        print(2)
    #
    print(test())
    #通过next()/__next__调用