Velocity Reviews > conditional for-statement

# conditional for-statement

seb
Guest
Posts: n/a

 08-23-2009
Hi,

i was wondering if there is a syntax alike:

for i in range(10) if i > 5:
print i

equivalent to

for i in (for i in range(10) if i>5):
print i

sebastien

Benjamin Peterson
Guest
Posts: n/a

 08-23-2009
seb <sdementen <at> gmail.com> writes:

>
> Hi,
>
> i was wondering if there is a syntax alike:
>
> for i in range(10) if i > 5:
> print i

for i in range(10):
if i > 5:
print i

Francesco Bochicchio
Guest
Posts: n/a

 08-23-2009
On Aug 23, 10:09*am, seb <(E-Mail Removed)> wrote:
> Hi,
>
> i was wondering if there is a syntax alike:
>
> for i in range(10) if i > 5:
> * * print i
>
> equivalent to
>
> for i in (for i in range(10) if i>5):
> * * print i
>
> sebastien

AFAIK, no syntax fo that. But the standard syntax is not too
different:

for i in range(0):
if i > 5 : print i

Or you can use itertools.ifilter:

for i in itertools.ifilter( lambda x: x > 5, range(10) ):
print i

Or, if you define a function corresponding to the loop body, you could
do something like:

map( print, (i for i in range(10) if i> 5 )) # only works if print is
a function

Ciao
----
FB

Bruno Desthuilliers
Guest
Posts: n/a

 08-24-2009
seb a écrit :
> Hi,
>
> i was wondering if there is a syntax alike:
>
> for i in range(10) if i > 5:
> print i
>
> equivalent to
>
> for i in (for i in range(10) if i>5):
> print i

for i in range(6, 10):
print i

<g>

More seriously:

for i in range(10):
if i > 5:
print i