一、语法形式
- generator name = ( expression )
二、一个例子
#This is a generator
#Here uses "( )"
mygenerator=(x*x for x in range(3))
for i in mygenerator:
print(i)
>> 0
1
4
上述代码中的mygenerator就是通过括号表达式产生的生成器。
☆注意:在紧接着的for...in...语句中只能使用一次。
三、[ ] vs. ( )
- 使用[表达式]产生的是迭代器,不是生成器,举个例子:
#This is a iterator,
#Here uses "[ ]" not "( )" ☆
mylist=[x*x for x in range(3)]
for i in mylist:
print(i)
>> 0
1
4
- 对比:
>> mylist是迭代器,mylist将其每个元素存储在内存中,对于大量数据,这个方法并不高效。
>> mygenerator是迭代器更是生成器,for循环每次执行仅在内存中产生和存储1个元素。