生成器表达式和生成器取值方法以及取值规律

def test_gen():
    lst = [i for i in range(10)]
    gen = (i for i in range(10))
    dt = {i for i in range(10)}
    tp = tuple([i for i in range(10)])
    print(type(lst), lst)
    print(type(gen), gen)
    print(type(dt), dt)
    print(type(tp), tp)
    print("***********************************")
    print(next(gen))
    print("***********************************")
    print(list(gen))
    print("***********************************")
    for i in gen:
        print("结果:", i)
    for i in tp:
        print("元组的值:", i)

if __name__ == '__main__':
    test_gen()

元组可以通过for循环取值。
生成器的定义使用()符号,生成器的取值通过next()方法可以每次取出来一个值,通过for循环可以循环取出生成器的值,如果先使用了next()方法取出来了第一个值,那么for循环取值的时候
就会从第二个值开始取出,通过list(生成器)方法进行print输出所有值后,再通过for循环取生成器的值,这时候print结果为空,因为生成器中的值已经通过print(list(生成器))方法全部取出并打印了。

image

posted @ 2025-08-30 10:13  大海一个人听  阅读(6)  评论(0)    收藏  举报