Как поместить оператор перед циклом for в python - PullRequest
1 голос
/ 22 ноября 2011

Как можно поместить оператор перед циклом for в python?Например:

print i for i in range(10)

Приведенный выше пример может показаться ненужным.Но когда дело доходит до более сложного генератора, он может быть удобным и питонным:

print i for i in takewhile(lambda x: x < 100000, fibonacci()) if i % 2 == 0

Конечно, переводчик жаловался на вышеприведенные утверждения.Должен быть какой-то стандартный и простой способ сделать это, но я просто не могу его найти.Я знаю, что могу сделать что-то подобное с пониманием списка:

print [i for i in range(10)]

Но он печатает список, а не каждый я в списке.Не совсем то, что я хочу.

Ответы [ 3 ]

2 голосов
/ 22 ноября 2011

Вы не можете сделать это в Python.

Вы можете вместо этого поставить:

for i in range(10): print i 

Но обычно вы пишете это в две строки.

for i in range(10):
    print i 
1 голос
/ 23 ноября 2011

Полагаю, вам не нравится легкий путь?

for i in range(10):
    print i

Если вам действительно нужен синтаксис, о котором вы говорите, вы можете попробовать это:

from __future__ import print_function # Added in 2.6

map(print, range(10))
0 голосов
/ 23 ноября 2011

Вот альтернатива:

print '\n'.join(map(str, range(10)))

Или генератор:

print '\n'.join(str(i) for i in range(10))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...