生成器表达式和生成器取值方法以及取值规律
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(生成器))方法全部取出并打印了。