在Python中克隆或复制列表有哪些选项?
在使用时new_list = my_list,每次都会对new_list更改进行任何修改my_list.为什么是这样?
我需要在Python中创建一个列表列表,所以我输入以下内容:
myList = [[1] * 4] * 3
Run Code Online (Sandbox Code Playgroud)
列表看起来像这样:
[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
Run Code Online (Sandbox Code Playgroud)
然后我改变了最里面的一个值:
myList[0][0] = 5
Run Code Online (Sandbox Code Playgroud)
现在我的列表看起来像这样:
[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]
Run Code Online (Sandbox Code Playgroud)
这不是我想要或期望的.有人可以解释一下发生了什么,以及如何解决这个问题?
我的Python迷宫生成程序似乎有问题.我正在尝试随机创建一个在选定点分支出来的路径,这些点随着它的存在而被存储起来.当迷宫到达死胡同时,它将通过测试最高值而不是弹出并转到下一个点来回溯通过被访问点,直到它到达不是死路的地方.但是,当我尝试将项目附加到列表中时,我用来保存我去过的空间,发生了一些奇怪的事情,我实际上从未见过它.这是代码,最好的方法是运行它直到它一直运行.我还没有真正找到解决死胡同问题的办法,所以如果有人也可以帮助我,那就太好了.
import random
width = 8
def check(x,y):
"""Figures out the directions that Gen can move while"""
if x-1 == -1:
maze[x][y][3] = 0
if x+1 == 8:
maze[x][y][1] = 0
if y+1 == 8:
maze[x][y][2] = 0
if y-1 == -1:
maze[x][y][0] = 0
if x + 1 in range(0,8) and visited[x+1][y] == False:
maze[x][y][1] = 2
if x - 1 in range(0,8) and visited[x-1][y] == False:
maze[x][y][3] = 2
if y + 1 in range(0,8) and visited[x][y+1] == …Run Code Online (Sandbox Code Playgroud)