如何在Python的for循环前放置语句
在Python中,如何在for循环之前放置语句呢?比如:
print i for i in range(10)
上面的例子看起来可能没什么必要。但是当涉及到更复杂的生成器时,这样做可能会很方便,也更符合Python的风格:
print i for i in takewhile(lambda x: x < 100000, fibonacci()) if i % 2 == 0
当然,上面的语句会被解释器抱怨。应该有一些标准且简单的方法来做到这一点,但我就是找不到。我知道我可以用列表推导式做类似的事情:
print [i for i in range(10)]
但是这样会打印出一个列表,而不是列表中的每一个i。这并不是我想要的结果。
3 个回答
0
这里有一个替代方案:
print '\n'.join(map(str, range(10)))
或者可以使用生成器:
print '\n'.join(str(i) for i in range(10))
2
在Python中,你不能这样做。
你可以把它放在后面:
for i in range(10): print i
不过通常你会把这写成两行。
for i in range(10):
print i
1
我猜你不喜欢简单的方法吧?
for i in range(10):
print i
如果你真的想要你说的那种语法,你可以试试这个:
from __future__ import print_function # Added in 2.6
map(print, range(10))