A hard exercise to help build the right mental model for Python data.

The โ€œSolutionโ€ link visualizes execution and reveals whatโ€™s actually happening using ๐—บ๐—ฒ๐—บ๐—ผ๐—ฟ๐˜†_๐—ด๐—ฟ๐—ฎ๐—ฝ๐—ต: https://github.com/bterwijn/memory_graph

you are viewing a single comment's thread
view the rest of the comments
[โ€“] 3 points 1 month ago (1 child)

Not too familiar with the union operator for dicts, but that result was not what I expected.

  • source
  • hideshow 1 child comment
  • [โ€“] [S] 1 point 1 month ago* (last edited 1 month ago)

    The dict union operator is similar to that of set, but in addition the right operand overwrites values of keys of the left operand. It's a nice operator once you get used to it.

    Easy to make a mistake with this exercise:

    • first realize b = b | {3: []} makes a shallow copy
    • then realize the shallow copy still references the value of key 2 in a so we can still append to that and change a
  • source
  • parent