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

时间:2017-05-02 10:20:30

标签: 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.shuffle(c)
>>> c
[5, 4, 3, 2, 1]
>>> a
[5, 4, 3, 2, 1]
>>> 

预期的结果是,数组' a'与' c'不同。请用你的知识来启发我,解释为什么结果和我预期的结果一样疯狂。

1 个答案:

答案 0 :(得分:1)

c和a是同一个对象。这就是为什么改变要么改变另一个。如果你想复制这个对象,可以采用以下方法:

a = c [:]

找到here