Python 函数修改列表而不返回它

Python 函数修改列表而不返回它,python,list,function,printing,return,Python,List,Function,Printing,Return,我正在尝试创建一个函数来“刷新”游戏板,而不是修改它。我的问题是函数正在修改它,我不知道为什么 例如: def refrescartablero(tablero): limpiarconsola() copiatablero=[] columnas=[" "] print (copiatablero) for x in tablero: copiatablero.append(x) for x in range(1,len(copiatablero[0])+1): columna

我正在尝试创建一个函数来“刷新”游戏板,而不是修改它。我的问题是函数正在修改它,我不知道为什么

例如:

def refrescartablero(tablero):
limpiarconsola()
copiatablero=[]
columnas=[" "]
print (copiatablero)
for x in tablero:
    copiatablero.append(x)
for x in range(1,len(copiatablero[0])+1):
    columnas.append(str(x))        
copiatablero.insert(0,columnas)    
for x in copiatablero:
    x.insert(0,"")
    x.insert(len(x), "")
for x in range(1,len(copiatablero)):
    copiatablero[x].insert(1,str(x))
for x in copiatablero:
    print ("_|_".join(x))
tablero=copiatablero
return
该功能添加了一些东西,使电路板看起来像:

_|_ _|_1_|_2_|_3_|_4_|_5_|_
_|_1_|_ _|_ _|_ _|_ _|_ _|_
_|_2_|_ _|_ _|_ _|_ _|_ _|_
_|_3_|_ _|_ _|_ _|_ _|_ _|_
_|_4_|_ _|_ _|_ _|_ _|_ _|_
但我只需要把它打印出来。问题在于列表“tablero”是:

tablero=[[' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ']]
变成:

tablero= [['', '1', ' ', ' ', ' ', ' ', ' ', ''], ['', '2', ' ', ' ', ' ', ' ', ' ', ''], ['', '3', ' ', ' ', ' ', ' ', ' ', ''], ['', '4', ' ', ' ', ' ', ' ', ' ', '']]
换句话说,我的功能是打印和修改列表,而不仅仅是打印


如果有人能帮助我,那就太好了。

Python列表是可变的。要防止编辑原始列表,可以将列表的副本而不是原始列表传递给函数

refrescartablero(list(tablero))

我认为最好是学习易变性、不变性、传递值(其中值是引用)、浅拷贝和深拷贝的概念。目前你的代码有很多错误,完整的答案很长。