ami*_*idi 2 algorithm arraylist python-3.x
发生在我身上的事很奇怪.当我写下这段代码时:
a = [3,2,4]
b = a
a.sort()
print(a)
print(b)
Run Code Online (Sandbox Code Playgroud)
变量"b"必须是[3,2,4],"a"必须是[2,3,4].但结果出来了:
[2, 3, 4]
[2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
为什么要对它们进行排序?我认为它只发生在列表中,因为我试着写下面的代码:
dots = dotsDetecter(param).getDots()
wholeDots = dots
Run Code Online (Sandbox Code Playgroud)
变量"dots"将成为一个列表,但在此之后无论我对"点"列表做什么,wholeDots变量都会像点一样变化.
现在有人为什么会这样吗?
b = a不实例化新列表,b只是a的别名.因此,a上的每个操作也会影响b.你应该做这样的事情:
def main():
a = [3, 2, 4]
b = list(a) # create new list initialized with a values
a.sort()
print(a)
print(b)
Run Code Online (Sandbox Code Playgroud)