How to Use Multiple For Loops and Multiple If Statements in Python Comprehensions

  • this is just to stress that all of the comprehensions allow using
  • multiple input sequences
  • multiple if-clauses

1. MULTIPLE FOR-LOOPS

  • The following provides a cartesian product of two ranges where the later for clauses are nested inside the earlier for clauses
[(x,y) for x in range(5) for y in range(5)]
  • This is synonymous to the
l = []
for x in range(5):
for y in range(5):
l.append((x,y))

2. MULTIPLE IF STATEMENTS

  • the following calculates a simple statement involving
  • 2 variables
  • 2 if statements
values = [x / (x - y) 
for x in range(100)
if x < 50
for y in range(100)
if x - y != 0]
values = []
for x in range(100):
if x > 50:
for y in range(100):
if x - y != 0:
values.append(x / (x - y))
  • later clauses (e.g range(x) below ) can refer to variables bound in earlier clauses (e.g. for x below)
  • it may seem confusing in a comprehension form, but completely natural if you think of it as nested for loops
[(x,y) for x in range(10) for y in range(x)]
[(1, 0), (2, 0), (2, 1), (3, 0), (3, 1), (3, 2), (4, 0), (4, 1), (4, 2), (4, 3), (5, 0), (5, 1), (5, 2), (5, 3), (5, 4), (6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (7, 0), (7, 1), (7, 2), (7, 3), (7, 4), (7, 5), (7, 6), (8, 0), (8, 1), (8, 2), (8, 3), (8, 4), (8, 5), (8, 6), (8, 7), (9, 0), (9, 1), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6), (9, 7), (9, 8)]

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Pavol Kutaj

Pavol Kutaj

Infrastructure Support Engineer/Technical Writer (Snowplow Analytics) with a passion for Python/writing documentation. More about me: https://pavol.kutaj.com