首页 > 编程语言 > 详细

Python生成器

时间:2020-10-02 00:03:53      阅读:32      评论:0      收藏:0      [点我收藏+]

生成器表达式 generator expression

生成器是迭代器的一种。与解析式的不同是惰性计算、延迟计算

语法:

(返回值 for 元素 in 可迭代对象 if 条件)

应用举例

var = ("{:x<4}".format(i) for i in range(10) )
print(var)
print(next(var))

运行结果

<generator object <genexpr> at 0x000001A1C2310F10>
0xxx

因为生成器也是迭代器,所以可以遍历

for x in var:
    print(x)

运行结果

1xxx
2xxx
3xxx
4xxx
5xxx
6xxx
7xxx
8xxx
9xxx

因为生成器只能向前,不能往回走,所以会有如下结果:

var = ("{:x<4}".format(i) for i in range(10) )
print(var)
print(next(var))

for x in var:
    print(x)

print(---------------)

for x in var:
    print(x)

运行结果

<generator object <genexpr> at 0x000001BA6EA30F10>
0xxx
1xxx
2xxx
3xxx
4xxx
5xxx
6xxx
7xxx
8xxx
9xxx
---------------

生成器练习

num=(print({}.format(i+1)) for i in range(3))
num1=next(num)
num2=next(num)
sum_num=num1+num2
print(sum_num)

运行结果

1
2
Traceback (most recent call last):
  File "C:/Users/ASUS-PC/PycharmProjects/zhanghao/复习/生成器.py", line 13, in <module>
    sum_num=num1+num2
TypeError: unsupported operand type(s) for +: NoneType and NoneType

产生上面结果是因为:print函数的返回值是None,所以加不了

 

Python生成器

原文:https://www.cnblogs.com/zh-dream/p/13733330.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!