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

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