个人在看书过程中的随笔记录,只局限于自己看得懂,方便后续查看
1 yield的一些用法和原理
- Iterables迭代器,比如lists, strings, 文件,我们专门为他们开辟了内存去储存所有内容,一项一项地读取其项目称为迭代
mylist = [1, 2, 3]
>>> for i in mylist:
... print(i)
1
2
3
我们可以随心所欲地读取它们,但是将所有值存储在内存中,当我们有很多值时,这并不总是您想要的。比如神经网络训练的样本选取。
- Generators
generators是一种只能迭代一次的可迭代对象。生成器不会将所有值存储在内存中,只在用到的时候及时生成:
>>> mygenerator = (x*x for x in range(3))
>>> for i in mygenerator:
... print(