Dict & Set Comprehensions

Dict Comprehension Basic

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

Dict from Two Lists

  1. # zip two lists
  2. keys = ["a", "b", "c"]
  3. values = [1, 2, 3]
  4. d = {k: v for k, v in zip(keys, values)}
  5. #ans: {'a': 1, 'b': 2, 'c': 3}

Dict with Condition

  1. # filter dict
  2. numbers = range(10)
  3. even_squares = {x: x**2 for x in numbers
  4. if x % 2 == 0}
  5. #ans: {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Swap Keys and Values

  1. # swap dict
  2. original = {"a": 1, "b": 2}
  3. swapped = {v: k for k, v in original.items()}
  4. #ans: {1: 'a', 2: 'b'}

Set Comprehension Basic

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

Set Removes Duplicates

  1. # auto-removes duplicates
  2. numbers = [1, 2, 2, 3, 3, 3]
  3. unique = {x for x in numbers}
  4. #ans: {1, 2, 3}

Set with Condition

  1. # filter set
  2. evens = {x for x in range(10) if x % 2 == 0}
  3. #ans: {0, 2, 4, 6, 8}

Exercises - Part 1

  1. # dict comprehension?
  2. {x: x*2 for x in range(3)}
  3. #ans: {0: 0, 1: 2, 2: 4}

Exercises - Part 2

  1. # dict from pairs?
  2. pairs = [("a", 1), ("b", 2)]
  3. {k: v for k, v in pairs}
  4. #ans: {'a': 1, 'b': 2}

Exercises - Part 3

  1. # dict with if-else?
  2. {x: "even" if x % 2 == 0 else "odd"
  3. for x in range(3)}
  4. #ans: {0: 'even', 1: 'odd', 2: 'even'}

Exercises - Part 4

  1. # nested dict?
  2. {i: {j: i*j for j in range(2)}
  3. for i in range(2)}
  4. #ans: {0: {0: 0, 1: 0}, 1: {0: 0, 1: 1}}

Exercises - Part 5

  1. # set comprehension duplicates?
  2. {x % 3 for x in range(10)}
  3. #ans: {0, 1, 2} (only unique values)

Exercises - Part 6

  1. # set vs list comprehension?
  2. [x for x in [1,2,2,3]]
  3. #ans: [1, 2, 2, 3]
  4. {x for x in [1,2,2,3]}
  5. #ans: {1, 2, 3}

Exercises - Part 7

  1. # dict filter values?
  2. d = {"a": 1, "b": 2, "c": 3}
  3. {k: v for k, v in d.items() if v > 1}
  4. #ans: {'b': 2, 'c': 3}

Exercises - Part 8

  1. # dict transform values?
  2. d = {"a": 1, "b": 2}
  3. {k: v*2 for k, v in d.items()}
  4. #ans: {'a': 2, 'b': 4}

Exercises - Part 9

  1. # set from string?
  2. {c for c in "hello"}
  3. #ans: {'h', 'e', 'l', 'o'}

Exercises - Part 10

  1. # empty dict vs set?
  2. {} # dict
  3. {x for x in []} # set()

Google tag (gtag.js)