侧边栏壁纸
  • 累计撰写 197 篇文章
  • 累计收到 496 条评论

Python学习笔记之元组推导式

2019-9-22 / 0 评论 / 61 阅读
# 元组推导式
# 元组不能修改和删除
# generator 生成器
listvar = [1,2,3,4]
res = (i<<1 for i in listvar)
print(res) # <generator object <genexpr> at 0x10330e250>
print(type(res)) # <class 'generator'>
from collections.abc import Iterator, Iterable
print(isinstance(res, Iterator)) # True

print(next(res)) # 2
print(next(res)) # 4
print(next(res)) # 6
print(next(res)) # 8
#Error : print(next(res)) 

# generator 与 for 搭配使用
# yield 有点像 return
# 执行到yield这句话的时候会把这个值返回出去,会记住当前的位置
# 下次再次调用的时候会从上一次的位置向下走
# 格式 yield(3) 或 yield 3
res = (i<<1 for i in [1,2,3,4])
for i in range(2):
    print(next(res))

# 含有yield关键字的函数是生成器的函数
def example():
    print('张宇童')
    yield 1
    print('前沿技术博客')
    yield 2
# 初始化生成器函数 形成生成器对象 gen
gen = example()
res = next(gen)
print(res) # 1
res = next(gen)
print(res) # 2

# 配合for使用 generator函数
res = example()
for i in range(2):
    next(res) # 张宇童 前沿技术博客

res = example()
for i in res:
    print(i)

评论一下?

OωO
取消