Why two different simple list variables behave exactly like each other?
本问题已经有最佳答案,请猛点这里访问。
我身上发生了非常奇怪的事。当我写下这段代码时:
1 2 3 4 5 | a = [3,2,4] b = a a.sort() print(a) print(b) |
变量"b"必须是[3,2,4],而"a"必须是[2,3,4]。但结果是:
1 2 | [2, 3, 4] [2, 3, 4] |
为什么这两种类型都有?我认为这只发生在列表上,因为我试图写下面的代码:
1 2 | dots = dotsDetecter(param).getDots() wholeDots = dots |
变量"dots"将是一个列表,但之后无论我对"dots"列表做什么,wholedots变量都会像点一样发生变化。
有人知道为什么会这样吗?
B=A不实例化新列表,B只是A的别名,所以A上的每个操作都会影响B。您应该这样做:
1 2 3 4 5 6 | def main(): a = [3, 2, 4] b = list(a) # create new list initialized with a values a.sort() print(a) print(b) |