首页 > 解决方案 > 覆盖附加的列表值

问题描述

我对 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))

我认为我的子列表将被附加,并且一旦有另一个循环,子列表将被更新,然后在不覆盖先前附加值的情况下附加。

代码行的简单更改(如评论)解决了这个问题,但我很困惑为什么。

谁能向我解释这是为什么?也许我错过了关于附加、循环或更多的基本知识?先感谢您。

标签: pythonappendoverwrite

解决方案


推荐阅读