覆盖附加列表值

2024-04-24 10:14:30 发布

您现在位置:Python中文网/ 问答频道 /正文

一般来说,我对Python和编码都很陌生

我尝试在列表中添加一个子列表。我最初被甩了,因为列表似乎附加了我想要的所有值,但这些值是[2,1]的最终值

使用以下代码

next_state = [0, 0]

def create_a_path(current_state):
    possible_moves = [(2, 0), (1, 0), (1, 1), (2, 0), (1, 0)] 

    state_list = []
    for pm in possible_moves:
        #next_state = [0, 0]  # this solves the issue
        next_state[0] = current_state[0] + pm[0]
        next_state[1] = current_state[1] + pm[1]
        print(pm)
        print(next_state)
        state_list.append(next_state)
    return state_list

    
current_state = [1, 1]
print(create_a_path(current_state))

我认为我的子列表将被追加,并且一旦出现另一个循环,子列表将被更新,然后追加而不覆盖之前追加的值

代码行的简单更改(如注释所示)解决了这个问题,但我不知道为什么

谁能给我解释一下为什么会这样?也许我遗漏了一些关于附加、循环或更多的基本信息?先谢谢你


Tags: path代码编码列表defcreatecurrentlist