I have a really weird issue in Python3. I have some code that generates some different list from a list of integers (what this does exactly is not relevant).
def get_next_state(state):
    max_val = max(state)
    max_index = state.index(max_val)
    new_state = state
    for n in range(max_val + 1):
        new_state[max_index] -= 1
        new_state[(n + max_index) % len(state)] += 1
    return new_state
Now all I want to do is add a next state to some list that keeps the states. This is my code:
l = [0, 2, 7, 0]
seen_states = []
for _ in range(10):
    print(l)
    seen_states += [l]
    l = get_next_state(l)
print(seen_states)
For some reason list l is assigned correctly when I print it, but it is not added correctly to the list of seen states. Note that I have also tried seen_states.append(l) instead of using += [l]. Does anyone know why this happend?
 
     
    