'''
列表推导式返回的是一个列表
元组推导式返回的是一个生成器
语法:
元组推导式
变量 = [变量或变量的处理结果 for 变量 in 容器类型数据] = >结果是一个生成器
生成器是什么?
生成器是一个特使的迭代器,可以自定义,也可以使用元组推导式去定义
按照某种算法取推到下一个数据或者结果,只需要内存中存储一个生成器,节约内存提升性能
语法:
(1) 里面是推导式 外面是一个()的结果就是一个生成器
(2) 自定义生成器含有 yield关键字的函数就是生成器
含有yield关键字的函数 返回的结果就是一个迭代器 换句话说 生成器函数就是一个返回迭代器的函数
如何获取生成器的数据
生成器是迭代器的一种
'''
varlist = [1,2,3,4]
newlist = [i**2 for i in varlist]
print(newlist)
nwt = (i**2 for i in varlist)
print(nwt)
# 使用next函数取调用 也可以使用list和tuple
print(next(nwt))
# 结果:
# [1, 4, 9, 16]
# <generator object <genexpr> at 0x000002081B77AF90>