Python 2.7 将数组A复制到数组B中,洗牌其中一个数组,但两个数组都被洗牌

Python 2.7 将数组A复制到数组B中,洗牌其中一个数组,但两个数组都被洗牌,python-2.7,Python 2.7,我真的很震惊,想不出为什么会发生这种事。这就是我所做的: >>> import random >>> c = a >>> a [1, 2, 3, 4, 5] >>> c [1, 2, 3, 4, 5] >>> random.shuffle(a) >>> a [5, 1, 3, 2, 4] >>> c [5, 1, 3, 2, 4] >>> random.

我真的很震惊,想不出为什么会发生这种事。这就是我所做的:

>>> import random
>>> c = a
>>> a
[1, 2, 3, 4, 5]
>>> c
[1, 2, 3, 4, 5]
>>> random.shuffle(a)
>>> a
[5, 1, 3, 2, 4]
>>> c
[5, 1, 3, 2, 4]
>>> random.shuffle(c)
>>> c
[5, 4, 3, 2, 1]
>>> a
[5, 4, 3, 2, 1]
>>> 

预期结果是,数组“a”与“c”不同。请用你的知识来启发我,解释为什么结果与我发疯时的预期结果相同。

c和a是同一个对象。这就是为什么改变其中一个会改变另一个。如果要复制对象,有一种方法:

a=c[:]


找到

您不使用
c=a创建列表副本
;您只需获得对同一列表的新引用。如果您想要一份副本,可以将其复制到:
c=a[:]
。没有理由感到震惊。哦,哇,非常感谢你,我无法理解发生了什么,结果我没有输入我应该写的语法