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

  • b34k@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    1 day ago

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

    • bterwijn@programming.devOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 day 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