我身上发生了非常奇怪的事情。当我写下这段代码时:
a = [3,2,4]
b = a
a.sort()
print(a)
print(b)
变量“ b”必须为[3,2,4],而“ a”必须为[2,3,4]。 但是结果出来了:
[2, 3, 4]
[2, 3, 4]
为什么对它们都进行排序? 我认为这只发生在列表上,因为我尝试编写以下代码:
dots = dotsDetecter(param).getDots()
wholeDots = dots
变量“ dots”将成为一个列表,但是在此之后,无论我对“ dots”列表进行什么操作,都可以将WholeDots变量更改为类似于点。
现在有人为什么会这样吗?
答案 0 :(得分:7)
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)