List comprehensions: Difference between revisions

Content added Content deleted
m (Moved to Basic learning cat)
No edit summary
Line 61: Line 61:
List comprehension:
List comprehension:


<python>[(x,y,z) for x in xrange(1,n+1) for y in xrange(x,n+1) for z in xrange(y,n+1) if x**2 + y**2 == z**2]</python>
<lang python>[(x,y,z) for x in xrange(1,n+1) for y in xrange(x,n+1) for z in xrange(y,n+1) if x**2 + y**2 == z**2]</lang>


Generator comprehension (note the outer round brackets):
Generator comprehension (note the outer round brackets):


<python>((x,y,z) for x in xrange(1,n+1) for y in xrange(x,n+1) for z in xrange(y,n+1) if x**2 + y**2 == z**2)</python>
<lang python>((x,y,z) for x in xrange(1,n+1) for y in xrange(x,n+1) for z in xrange(y,n+1) if x**2 + y**2 == z**2)</lang>


Generator function:
Generator function:


<python>def gentriples(n):
<lang python>def gentriples(n):
for x in xrange(1,n+1):
for x in xrange(1,n+1):
for y in xrange(x,n+1):
for y in xrange(x,n+1):
for z in xrange(y,n+1):
for z in xrange(y,n+1):
if x**2 + y**2 == z**2:
if x**2 + y**2 == z**2:
yield (x,y,z)</python>
yield (x,y,z)</lang>