【滴滴面试题】【Python】迭代器与生成器

什么是迭代器

(1)迭代器是用来访问集合元素的一种方式。

(2)迭代器对象从集合的第一个元素开始访问,直到结束,迭代器只会前进不会后退。

(3)迭代器有2个基本方法:iter(),next()。

4)字符串,列表,元组都可用于创建迭代器。

迭代器的使用

    #s = "abcdef"
    #s = ['a', 'b', 'c']
    s = ('a', 'b', 'c')
    #创建迭代器对象
    s_iter = iter(s)
    #遍历元素
    #1、for循环遍历
    for x in s_iter:
        print (x)
    #2、next()方法遍历,见下面的生成器例子

什么是生成器

(1)使用了yield的函数被称为生成器。

(2)生成器是一个返回迭代器的函数,只能用于迭代操作。所以调用一个迭代器函数,返回的是一个迭代器对象。

(3)调用生成器函数时,每次遇到yield时,函数会保存当前运行的参数的信息,并返回yield的值,下一次调用next()方法时从上次保留的位置继续运行

生成器的使用

import sys
def func(n):
    #因为有yield所以这个函数是一个生成器函数
    while n < 5:
        n += 1
        yield n

f = func(0) #f是一个迭代器对象
#1、可以使用for循环遍历迭代器对应
for x in f:
    print (x)  
#结果: 1 2 3 4 5
    
#2、也可以使用next()方法进行迭代
while True:
    try:
        print (next(f))
    except StopIteration:
        sys.exit()
#结果: 1 2 3 4 5

 

你可能感兴趣的:(面试题)