2015-04-06 30 views
0

我正在做这件简单的事情,但我不希望修改左操作数(bananas)时修改右操作数(​​)。Python赋值操作符:右操作数也在修改左操作数时被修改

>> apples = [1,2,3,4,5] 
>> bananas = apples 
>> bananas.remove(3) 
>> bananas 
    [1,2,4,5] 
>> apples 
    [1,2,4,5] 

​​应该[1,2,3,4,5]而不是[1,2,4,5]

请对此发表评论。

问候。

+0

https://rg03.wordpress.com/2007/04/21/semantics-of-python-variable-names-from-ac-perspective/ – user2357112 2015-04-06 07:34:05

回答

1

最简单的方法避免使用它:

bananas = []+apples 
+2

要复制一个列表,通常你使用'香蕉=苹果[:]'。 – Daniel 2015-04-06 07:43:19

+0

要复制可能嵌入引用的列表,请使用'bananas = copy.deepcopy(apples)' – cdarke 2015-04-06 08:21:34