如何在Python的for循环前放置语句

1 投票
3 回答
2042 浏览
提问于 2025-04-17 06:52

在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))

撰写回答