我正在尝试制作一个“刷新”游戏板而不是修改它的功能。我的问题是该功能正在修改它,我不知道为什么。
例如:
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', ' ', ' ', ' ', ' ', ' ', '']]
换句话说,我的功能是打印和修改列表,而不仅仅是打印......
如果有人可以帮助我,那就太棒了。
答案 0 :(得分:0)
Python列表是可变的。要防止编辑原始列表,可以将列表副本传递给函数而不是原始列表。
refrescartablero(list(tablero))