📜  Python中的无限迭代器

📅  最后修改于: 2022-05-13 01:55:24.183000             🧑  作者: Mango

Python中的无限迭代器

Python中的迭代器是可以与“ for in loop ”一起使用的任何Python类型。 Python列表、元组、字典和集合都是内置迭代器的示例。但是迭代器对象不必耗尽,有时它可以是无限的。这种类型的迭代器被称为无限迭代器

Python提供了三种类型的无限迭代器——

  1. count(start, step):此迭代器从“start”数字开始打印并无限打印。如果提到步骤,则跳过数字,否则步骤默认为 1。请参阅下面的示例,了解其与for in循环的使用。

    例子:

    # Python program to demonstrate
    # infinite iterators
      
    import itertools
      
    # for in loop
    for i in itertools.count(5, 5):
        if i == 35:
            break
        else:
            print(i, end =" ")
    

    输出:

    5 10 15 20 25 30
    
  2. cycle(iterable):此迭代器从传递的容器中按顺序打印所有值。当所有元素以循环方式打印时,它会重新从头开始打印。

    示例 #1:

    # Python program to demonstrate
    # infinite iterators
      
    import itertools
      
    count = 0
      
    # for in loop
    for i in itertools.cycle('AB'):
        if count > 7:
            break
        else:
            print(i, end = " ")
            count += 1
    

    输出:

    A B A B A B A B 
    

    示例 #2:使用下一个函数。

    # Python program to demonstrate
    # infinite iterators
      
    import itertools
      
    l = ['Geeks', 'for', 'Geeks']
      
    # defining iterator
    iterators = itertools.cycle(l)
      
    # for in loop
    for i in range(6):
          
        # Using next function
        print(next(iterators), end = " ")
    

    输出:

    Geeks for Geeks Geeks for Geeks 
    
  3. repeat(val, num):这个迭代器无限次地重复打印传递的值。如果提到了可选关键字num ,那么它会重复打印num次。

    例子:

    # Python code to demonstrate the working of  
    # repeat() 
        
    # importing "itertools" for iterator operations 
    import itertools 
        
    # using repeat() to repeatedly print number 
    print ("Printing the numbers repeatedly : ") 
    print (list(itertools.repeat(25, 4)))
    

    输出:

    Printing the numbers repeatedly : 
    [25, 25, 25, 25]