python yield
描述:遍历数据,数据为数字或者由数字填充的列表
不使用生成器
1 data = [[1, 2], [3, 2], [5]] 2 3 for lst in data: 4 for item in lst: 5 print item
使用生成器
1 data = [[1, 2], [3, 2], [5]] 2 3 def flatten(nested): 4 for lst in nested: 5 for element in lst: 6 yield element 7 8 for item in flatten(data): 9 print item
如果嵌套的层数不定
使用生成器
1 data_1 = [1, 3] 2 data_2 = [[3, 1], [4, 1]] 3 data_3 = [1, 2] 4 5 data = [data_1, data_2, data_3] 6 7 def flatten(nested): 8 try: 9 for lst in nested: 10 for item in flatten(lst): 11 yield item 12 except: 13 yield nested 14 15 for item in flatten(data): 16 print item
不使用生成器
1 data_1 = [1, 3] 2 data_2 = [[3, 1], [4, 1]] 3 data_3 = [1, 2] 4 5 data = [data_1, data_2, data_3] 6 7 def foo(data): 8 for item in data: 9 if type(item) is type(1): 10 print item, 11 else: 12 foo(item) 13 14 foo(data)
参考:《python基础教程》 人民邮电出版社
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。