An exercise to help build the right mental model for Python data.
- Solution: memory-graph.com#codeurl=http...
- Explanation: github.com/bterwijn/mem...

An exercise to help build the right mental model for Python data.
- Solution: memory-graph.com#codeurl=http...
- Explanation: github.com/bterwijn/mem...
Solving SUDOKU
Repeatedly clicking (or holding) the green "Continue" button solves each Sudoku puzzle in the Memory Graph Web Debugger: memory-graph.com#codeurl=http...
- easy
- medium, from Gordon Royle’s collection
- hard, "Everest" by Arto Inkala
An exercise to help build the right mental model for Python data.
- Solution: memory-graph.com#codeurl=http...
- Explanation: github.com/bterwijn/mem...
- More exercises: bsky.app/profile/bter...
#PythonDev #memory_graph #Mutability
🌳 Recursive tree traversal in Python visually explained:
memory-graph.com#codeurl=http...
A binary tree can be traversed in three classic ways:
🔹 𝗣𝗿𝗲𝗼𝗿𝗱𝗲𝗿: current, left, right
🔹 𝗜𝗻𝗼𝗿𝗱𝗲𝗿: left, current, right
🔹 𝗣𝗼𝘀𝘁𝗼𝗿𝗱𝗲𝗿: left, right, current
A 𝐡𝐚𝐫𝐝 exercise to help build the right mental model for Python data.
- Solution: memory-graph.com#codeurl=http...
- Explanation: github.com/bterwijn/mem...
#PythonDev #memory_graph #ShallowCopy
🌳 Trie demo: memory-graph.com#codeurl=http...
A trie is a tree-shaped data structure that can be implemented elegantly in Python using nested dictionaries (hash tables).
Tries are often used for:
- Autocomplete
- Prefix search
- Sequence matching
An exercise to help build the right mental model for Python data.
- Solution: memory-graph.com#codeurl=http...
- Explanation: github.com/bterwijn/mem...
#PythonDev #memory_graph #ShallowCopy
How does 𝗟𝗮𝘇𝘆 𝗘𝘃𝗮𝗹𝘂𝗮𝘁𝗶𝗼𝗻 work in Python?
In this example: memory-graph.com#codeurl=http...
we show a sink reading from different sources, some eager some lazy, using the Iterator Protocol, where 𝐦𝐞𝐦𝐨𝐫𝐲_𝐠𝐫𝐚𝐩𝐡 shows what's really going on.
❓️ Your functions work, but you want to add logging. Do you edit each function?
🎯 Decorators help: wrap a function, add logic before and after each call.
🔎 We use '@log_call' to log each call with arguments and return value: memory-graph.com#codeurl=http...
An exercise to help build the right mental model for Python data.
- Solution: memory-graph.com#codeurl=http...
- Explanation: github.com/bterwijn/mem...
How do we turn, say €24.72, into coins? 🪙🪙💰⛀⛁
In this classic beginner-friendly exercise 𝐦𝐞𝐦𝐨𝐫𝐲_𝐠𝐫𝐚𝐩𝐡 visualizes what happens step-by-step at execution for easy understanding and debugging.
Run the demo: memory-graph.com#codeurl=http...
How do Python for-loops work?
Using the Iterator Protocol:
𝑖𝑡𝑒𝑟𝑎𝑡𝑜𝑟 = 𝑖𝑡𝑒𝑟(𝑐𝑜𝑛𝑡𝑎𝑖𝑛𝑒𝑟)
𝑤ℎ𝑖𝑙𝑒 𝑇𝑟𝑢𝑒:
..𝑡𝑟𝑦:
....𝑣𝑎𝑙𝑢𝑒 = 𝑛𝑒𝑥𝑡(𝑖𝑡𝑒𝑟𝑎𝑡𝑜𝑟)
....𝑝𝑟𝑖𝑛𝑡(𝑣𝑎𝑙𝑢𝑒)
..𝑒𝑥𝑐𝑒𝑝𝑡 𝑆𝑡𝑜𝑝𝐼𝑡𝑒𝑟𝑎𝑡𝑖𝑜𝑛:
....𝑏𝑟𝑒𝑎𝑘
A Linked_List example: memory-graph.com#codeurl=http...
An exercise to help build the right mental model for Python data.
- Solution: memory-graph.com#codeurl=http...
- Explanation: github.com/bterwijn/mem...
The Solution link uses 𝗺𝗲𝗺𝗼𝗿𝘆_𝗴𝗿𝗮𝗽𝗵: github.com/bterwijn/mem...
to visualize code execution.
Data Structures in Python get easy when you can see the structure of your data using 𝗺𝗲𝗺𝗼𝗿𝘆_𝗴𝗿𝗮𝗽𝗵. A Binary Tree example: memory-graph.com#codeurl=http...
VS Code setup: dai.ly/xb2u52e?star...
memory_graph GitHub: github.com/bterwijn/mem...
An exercise to help build the right mental model for Python data.
- Solution: memory-graph.com#codeurl=http...
- Explanation: github.com/bterwijn/mem...
The Solution link uses memory_graph: github.com/bterwijn/mem...
to reveal what’s actually happening.
Programming courses often focus heavily on understanding code, while paying far less attention to understanding the program state.
Package memory_graph: memory-graph.com#codeurl=http...
visualizes the state for easy program understanding and debugging.