我知道[:]做的是浅拷贝(成员不被复制),仍然可以有人解释这种行为:
>>> 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']]
>>>
为什么a仍未改变? 抱歉没有问题。
答案 0 :(得分:4)
当你说
时i=i[4:]
您实际上并未将i
更改为i[4:]
,而只是将i
指向i[4:]
。 i
仅仅是对实际列表的引用。为了真正改变数据,
i[:]=i[4:]