学习python时,碰到一个生成器的概念,有点意思,其实很简单,基本上就是两种策略:
- 把列表生成式中的中括号改为小括号就好了:
- 第二种方法,就是在return的时候,用yield来把函数变成生成器
并不难,可以直接参考廖大的教程。
这里主要想说的是一个程序,from python基础教程:
def yield_test(nested):
try:
for sublist in nested:
for element in yield_test(sublist):
# pass
yield element
except TypeError:
yield nested
print yield_test([[1,2],[3,4],5])
for i in yield_test([1,2]):
print i,
在程序中设置了断点,单步调试,很快就蒙蔽了,可以看出写东西,但是跟踪起来很费劲,肯定是可以出结果的。
重点在于对递归的理解,理解了递归,也就理解了程序,该程序理解了,基本也就可以告别python基本语法了,可以开始库的学习了,重要的点有三项:
错误与捕获
yield
递归的思想