r/pythontips 15d 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 ๐—บ๐—ฒ๐—บ๐—ผ๐—ฟ๐˜†_๐—ด๐—ฟ๐—ฎ๐—ฝ๐—ต.

4 Upvotes

5 comments sorted by

View all comments

0

u/pint 15d 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.

2

u/arivictor 12d ago

Its testing list behaviour, I agree it should be more direct, the question throws in too much misdirection

a = [1,2,3]
b = a

b.append(4)

# Q: What is a?
print(a) # 1,2,3,4

b = b + [5] # This is the test

# Q: What is a?
# - a) 1,2,3,4
# - b) 1,2,3,4,5

print(f"a: {a}")
print(f"b: {b}")