【发布时间】:2014-10-10 07:49:15
【问题描述】:
假设我有一个sets 的生成器:
def f(n) :
for i in xrange(n) :
yield set(xrange(i) )
>>> for s in f(5) :
print s
set([])
set([0])
set([0, 1])
set([0, 1, 2])
set([0, 1, 2, 3])
现在我想union他们。我可以创建一个临时集合列表,并将该列表解压缩为union 的参数:
>>> set.union( * list( f(5) ) )
set([0, 1, 2, 3])
我也可以将生成器本身交给union:
>>> set.union( * f(5) )
set([0, 1, 2, 3])
第二种方法是否像第一种方法一样创建完整的临时列表?哪种方法内存效率高?
【问题讨论】:
标签: python python-2.7 iterator generator