Python生成器解析式和Zip函数介绍
对列表解析来说,只需要简单的把中括号换成小括号就可以了,生成器解析式是按需计算的或者说延迟计算的或者叫惰性求值。生成器解析式
#!/usr/bin/env python3 # Author: nock def inc(x): print('inc {0}'.format(x)) return x + 1 # 生成一个迭代器对象 obj = (inc(x) for x in range(10)) print(obj) Result:at 0x107d87678>
#!/usr/bin/env python3 # Author: nock # 生成一个迭代器对象 obj = (x for x in range(10)) l = [x for x in range(10)] print(next(obj)) print(next(obj)) print(next(obj)) print(l[4]) try: print(obj[1]) except Exception as e: print("Exception is: {0}".format(e)) print(next(obj))Result:
0 1 2 4 Exception is: 'generator' object is not subscriptable 3生成器无下标获取。
[attach]1657[/attach] zip 函数用于合并多个可迭代对象,合并后的长度等于最短的可迭代对象的长度Zip