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

Duplicate array A into array B, shuffle one of the array, but both of the array gets shuffled

本问题已经有最佳答案,请猛点这里访问。

我真的很震惊,想不出为什么会这样。我就是这样做的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> 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[]

在这里找到