Python function or syntactic sugar to return all elements of a generator expression?
给出一个生成器表达式,我想进行一个函数调用,该函数返回生成器表达式的所有元素。
1 2 3 4 5 6 7 | >>> a = (i for i in range(1,101)) >>> a <generator object <genexpr> at 0x101873460> >>> a.next() 1 >>> a.next() 2 |
换句话说,我想避免像这样的循环:
1 2 | for i in a: print i |
,而是为循环添加语法糖:
1 | a.all() # or the like |
我看着itertools,但我不清楚是否存在这样的东西。
您可以根据以下内容创建一个列表:
1 | list(a) |
例子
1 2 3 4 | a = (i for i in range(1,101)) print list(a) [1, 2, 3, ..., 100] |
事实上,由于在这种情况下您要将项目放入列表中,因此您还可以使用列表理解:
1 | a = list(range(1, 101)) |
现在,
我认为这是最好的解决方案。
1 2 3 | a = [i for i in range(1, 101)] print a [1, 2, 3, ..., 100] |