5.5. 生成器推导式¶
生成器推导式即是 生成器,和列表推导式一样,列表是[],生成器是()
5.5.1. 代码示例1¶
number_thing = (number for number in range(1,6))
number_thing
<generator object <genexpr> at 0x00000279D55ADE60>
number_thing = (number for number in range(1,6))
list(number_thing)
[1, 2, 3, 4, 5]
list(number_thing) #再次查看已经为空,说明生成器已经为空
[]
for i in number_thing:
....: print(i)
....:
1
2
3
4
In [29]: for i in number_thing:
....: pirnt(i)
....:
#再次迭代,值已经为空,因为生成器只能运行一次
5.5.2. 代码示例2¶
#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2020/3/3 14:39
# filename: 生成器推导式01.py
f = open("data.txt")
lines = (t.strip() for t in f) # 读取行,删除前后空白
# comments = (t for t in lines if t[0] == "#")
comments = (t for t in lines if t[0] != "#") # 读取生成器内容去掉#号内容
# print(list(comments))
for comment in comments:
print(comment)