给定一个生成器表达式,我想进行一个函数调用,返回生成器表达式的所有元素。
>>> a = (i for i in range(1,101))
>>> a
<generator object <genexpr> at 0x101873460>
>>> a.next()
1
>>> a.next()
2
换句话说,我想避免像:
这样的循环for i in a:
print i
而是为循环提供了语法糖:
a.all() # or the like
我查看了itertools,但我不清楚这样的事情是否存在。
答案 0 :(得分:4)
您可以创建一个列表:
list(a)
a = (i for i in range(1,101))
print list(a)
[1, 2, 3, ..., 100]
事实上,因为在这种情况下你将项目放入列表中,你也可以使用列表理解:
a = list(range(1, 101))
现在,a
是一个列表而不是生成器对象。
答案 1 :(得分:0)
我认为这是最好的解决方案。
a = [i for i in range(1, 101)]
print a
[1, 2, 3, ..., 100]