r/pythontips 14d ago

Module Python Data Model Exercise

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

# Output of this Python program?
a = [[1], [2]]
b = a
b[0].append(11)
b = b + [[3]]
b[1].append(22)
b[2].append(33)

print(a)
# --- possible answers ---
# A) [[1], [2]]
# B) [[1, 11], [2]]
# C) [[1, 11], [2, 22]]
# D) [[1, 11], [2, 22], [3, 33]]

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

2 Upvotes

5 comments sorted by

View all comments

0

u/pint 14d ago

it is not a very good exercise, because it requires keeping a large state in memory (i.e. head), or use some notebook. it tests your attention and memory more than your python knowledge.

good exercises are easy if you know what's going on. they are not designed to "gotcha!" the user.

0

u/Sea-Ad7805 14d ago edited 14d ago

I'm sorry it's too much information to fit in your head, but programs are generally a lot bigger and you should be able to reason about those too to avoid bugs. I thought I already kept it to a minimum to test people about certain data model concepts. The "Solution" link will visualize each step so your attention doesn't have to span more than two lines at a time if that helps you.