List Comprehensions

Basic List Comprehension

  1. # basic comprehension
  2. squares = [x**2 for x in range(5)]
  3. #ans: [0, 1, 4, 9, 16]

With Transformation

  1. # transform items
  2. words = ["hello", "world"]
  3. upper = [word.upper() for word in words]
  4. #ans: ['HELLO', 'WORLD']

With Condition (Filter)

  1. # filter with condition
  2. evens = [x for x in range(10) if x % 2 == 0]
  3. #ans: [0, 2, 4, 6, 8]

Multiple Conditions

  1. # multiple filters
  2. numbers = [x for x in range(20)
  3. if x % 2 == 0
  4. if x % 3 == 0]
  5. #ans: [0, 6, 12, 18]

If-Else Expression

  1. # if-else (not filter)
  2. result = ["even" if x % 2 == 0 else "odd"
  3. for x in range(5)]
  4. #ans: ['even', 'odd', 'even', 'odd', 'even']

Nested Loops

  1. # nested loops
  2. pairs = [(x, y) for x in range(3)
  3. for y in range(2)]
  4. #ans: [(0,0), (0,1), (1,0), (1,1), (2,0), (2,1)]

Flatten Nested List

  1. # flatten
  2. nested = [[1, 2], [3, 4], [5, 6]]
  3. flat = [item for sublist in nested
  4. for item in sublist]
  5. #ans: [1, 2, 3, 4, 5, 6]

Exercises - Part 1

  1. # basic comprehension?
  2. [x*2 for x in range(3)]
  3. #ans: [0, 2, 4]

Exercises - Part 2

  1. # with filter?
  2. [x for x in range(10) if x > 5]
  3. #ans: [6, 7, 8, 9]

Exercises - Part 3

  1. # if-else position?
  2. [x if x > 0 else 0 for x in [-1, 1, -2, 2]]
  3. #ans: [0, 1, 0, 2]

Exercises - Part 4

  1. # nested comprehension?
  2. [[i*j for j in range(3)] for i in range(2)]
  3. #ans: [[0, 0, 0], [0, 1, 2]]

Exercises - Part 5

  1. # string comprehension?
  2. [c.upper() for c in "abc"]
  3. #ans: ['A', 'B', 'C']

Exercises - Part 6

  1. # multiple filters?
  2. [x for x in range(20) if x % 2 == 0 if x % 5 == 0]
  3. #ans: [0, 10]

Exercises - Part 7

  1. # comprehension vs loop?
  2. #ans: [x**2 for x in range(3)]
  3. #ans: vs
  4. #ans: result = []
  5. #ans: for x in range(3):
  6. #ans: result.append(x**2)
  7. #ans: same result

Exercises - Part 8

  1. # empty comprehension?
  2. [x for x in range(0)]
  3. #ans: []

Exercises - Part 9

  1. # tuple in comprehension?
  2. [(x, x**2) for x in range(3)]
  3. #ans: [(0, 0), (1, 1), (2, 4)]

Exercises - Part 10

  1. # flatten with condition?
  2. nested = [[1,2,3], [4,5,6]]
  3. [x for sublist in nested
  4. for x in sublist if x % 2 == 0]
  5. #ans: [2, 4, 6]

Google tag (gtag.js)