我有一个大的二维列表,我像矩阵一样对待.现在我正在做这些列表的一部分
subset = mainList[startIndex:endIndex]
Run Code Online (Sandbox Code Playgroud)
但我相信这会产生一个新列表,并将所有行复制到新列表中.有什么办法可以避免重复数据并只指向mainList中的行吗?谢谢你的回答!
是的,您创建了一个新的外部列表,但不会复制嵌套列表.您实际上并不是在复制数据,只会复制对嵌套列表的引用.
这创建了一个列表对象,并且包含的引用很便宜.不要担心那些.
快速说明演示:
>>> mainList = [['foo', 'bar', 'baz'], ['spam', 'ham', 'eggs'], ['idle', 'cleese', 'jones']]
>>> sliced = mainList[:2]
>>> sliced
[['foo', 'bar', 'baz'], ['spam', 'ham', 'eggs']]
>>> sliced[0][1] = 'parrot'
>>> mainList
[['foo', 'parrot', 'baz'], ['spam', 'ham', 'eggs'], ['idle', 'cleese', 'jones']]
Run Code Online (Sandbox Code Playgroud)
改变了sliced共享的列表对象中的嵌套列表mainList.