Python 迭代器

codeAB 2019-11-01

Python 迭代器

来自https://www.runoob.com/python3/python3-iterator-generator.html

来自https://www.liaoxuefeng.com/wiki/1016959663602400/1017323698112640

迭代器的特性:

  • 迭代是Python最强大的功能之一,是访问集合元素的一种方式。
  • 迭代器是一个可以记住遍历的位置的对象。
  • 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
  • 迭代器有两个基本的方法:iter() 和 next()
  • 迭代器是惰性的,只有在需要返回下一个数据时它才会计算。当数据流很大时,使用迭代器十分有利,高效且节省内存
  • 字符串,列表或元组对象都可用于创建迭代器
  • L = [1, 2, 3, 4]
    it = iter(L)
    print(it)               # 输出:<list_iterator object at 0x00000000024B9198>
    print(type(it))         # 输出:<class ‘list_iterator‘>
    print(next(it))         # 输出:1
    print(next(it))         # 输出:2
    
    T = (5, 6, 7, 8)
    it_1 = iter(T)
    print(it_1)             # 输出:<tuple_iterator object at 0x00000000024B9208>
    print(type(it_1))       # 输出:<class ‘tuple_iterator‘>
    print(next(it_1))       # 5
    print(next(it_1))       # 6
    
    S = "You‘re really nice"
    it_2 = iter(S)
    print(it_2)             # 输出:<str_iterator object at 0x00000000024B92E8>
    print(type(it_2))       # 输出:<class ‘str_iterator‘>
    print(next(it_2))       # 输出:Y
    print(next(it_2))       # 输出:o
  • 遍历迭代器
  • # 方法1
    L = [1, 2, 3, 4]
    it = iter(L)      # 创建迭代器
    for x in it:
        print(x, end=" ")
    # 输出:1 2 3 4
    
    # 方法2
    import sys
    L2 = [1, 2, 3, 4]
    it2 = iter(L2)
    
    while True:
        try:
            print(next(it2))
        except StopIteration:
            sys.exit()

相关推荐