How does Python referencing work?

In Python a variable is not a box that holds things, it is a name that points to an object. In your code:

  • d = { 'm': [1,2,3] } –> binds the name d to a dictionary
  • m = d['m'] –> binds the name m to a list
  • m = m[1:] –> binds the name m to another list

Your third line is not changing m itself, but what m is pointing to.

To edit the elements in the list what you can do is:

m = d['m']
for i, item in enumerate(m):
    result = do_something_with(item)
    m[i] = result

Leave a Comment