我知道[:]做的是浅表复制(成员未复制),仍然有人可以解释这种行为:
>>> a=[['a','b','c','a','b','c','a','b','c'],
... ['c','a','b','c','a','b','c','a','b'],
... ['b','c','a','b','c','a','b','c','a']
... ]
>>> for i in a:
... i=i[4:]
...
>>> a
[['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'], ['c', 'a', 'b', 'c', 'a', 'b', 'c', 'a', 'b'], ['b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'a']]
>>>
为什么一个仍然没有改变?
对不起,菜鸟问题。
最佳答案
当你说
i=i[4:]
您实际上并没有将
i
更改为i[4:]
,只是将i
指向i[4:]
。 i
只是对实际列表的引用。为了真正更改数据,i[:]=i[4:]
关于python - list list 的浅拷贝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20826603/