(1)Yield是不克不及嵌套的!
- def visit(data):
- for elem in data:
- if isinstance(elem, tuple) or isinstance(elem, list):
- visit(elem) # here value retuened is generator
- else:
- yield elem
- if __name__ == '__main__':
- for e in visit([1, 2, (3, 4), 5]):
- print e
膳绫擎的代码拜访嵌套序列琅绫擎的每一个元素,我们期望的输出是1 2 3 4 5,而实际输出是1 2 5 。为什么呢,如注释所示,visit是一个generator function,所以第4行返回的是generator object,而代码也没这个generator实例迭代。那么改改代码,对这个临时的generator 进行迭代就行了。
- def visit(data):
- for elem in data:
- if isinstance(elem, tuple) or isinstance(elem, list):
- for e
推荐阅读
化繁为简 海云捷迅为企业提供应用OpenStack新“姿势”
在版本进级方面,OpenStack每半年就会宣布一个版本,这是它的立异过程,但企业客户更多求稳,不会过快的进行迭代进级。海云捷迅底层技巧是每两年一个版本,首版是基于OpenStack的E版本,二版本是H版,三版本是基于社>>>详细阅读
地址:http://www.17bianji.com/lsqh/36457.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示