作者whitefur (白毛)
看板Python
标题Re: [问题] 新手发问List资料复制
时间Wed Sep 19 12:09:26 2012
上一篇g大提供了答案
而我来回一下你原本的方法错在哪
※ 引述《mjchen ( )》之铭言:
: 各位老手大家好,我有一个不知道该如何问起的问题
: 手边有一个List如下
: list = [1, 2, 3, 4, 5]
: 之後会对这个List的资料做变更,但是又希望能保留过去完整的资料
: 如果这样写
: list = [1, 2, 3, 4, 5]
: newList = list
^^^
这里的等於是把等号右边的值assign给等号左边的值
事实上,python里的物件的变数的值不是物件本身
而是物件的位置
所以这一行执行之後的结果就是
newList跟list的值都是同一块记忆体位置
例如
[1,2,3,4,5]在14956384这个位置 ┌───────┐
│ │
newList = list ○ ────→[1, 2 ,3, 4, 5]│
^^^^^^^ ^^^^ ^^^^ │ │
14956384 14956384 list、newList └───────┘
^^^^^^^
newList.pop() 我就是14956384
^^^^^^^^^^^^^^
事实上就是14956384.pop() ←当然语法上不能这样写
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.232.218.12
1F:推 mjchen:谢谢G大用心讲解+绘图....现在再来看,看懂了~感谢你! 09/26 00:56
2F:→ mjchen:太瞎...我是说"W"大(我眼残) 09/26 00:57