tuple推导式
list推导式返回的是list,tuple推导式返回的是生成器
list推导式 ==> [变量运算 for i in iterable] ==> list
tuple推导式 ==> (变量运算 for i in iterable) ==> 生成器
什么是生成器
生成器是一种特殊的iterator,生成器可以自定义,也可以使用tuple推导式来定义
生成器按照指定算法来推算下一个数据,只需要往内存中存储一个生成器,节约内存,提升性能
语法:
1.( 推导式 ) 结果就是生成器
2.自定义生成器,含有yield关键字的函数就是生成器
含有yield关键字的函数返回结果是iterator,生成器函数就是一个返回iterator的函数
list推导式
varlist = [1,2,3,4,5,6]
newlist = [i**3 for i in varlist]
print(newlist)
[1, 8, 27, 64, 125, 216]
tuple推导式
varlist = [1,2,3,4,5,6]
newtuple = (i**3 for i in varlist)
print(newtuple)
<generator object <genexpr> at 0x0000007590980148>
遍历生成器
# 使用next()
# print(next(newtuple))
# print(next(newtuple))
# 使用list()、tuple()
# print(tuple(newtuple))
# print(list(newtuple))
# 使用for循环
for i in newtuple :
print(i)
1
8
27
64
125
216