Mat*_*tt. 1 python list nested-lists
我正在研究一个项目,我需要在列表中重复一定次数的列表.显然,L.append(L)只是再次添加元素而不创建单独的列表.我只是对如何在大列表中分开列表感到困惑.
简而言之,这就是我所拥有的:
L = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
如果我想重复一遍,比如说3次,那么我有:
L = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?我正在寻找大名单中的列表.
提前致谢.
不需要任何功能:
>>> L = [1,2,3,4,5]
>>> [L]*3
[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)
但是,您应该注意,如果您更改任何列表中的一个值,则所有其他值都将更改,因为它们引用同一个对象.
>>> mylist = [L]*3
>>> mylist[0][0] = 6
>>> print mylist
[[6, 2, 3, 4, 5], [6, 2, 3, 4, 5], [6, 2, 3, 4, 5]]
>>> print L
[6, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
为了避免这种情况
>>> L = [1,2,3,4,5]
>>> mylist = [L[:] for _ in range(3)]
>>> mylist[0][0] = 6
>>> print L
[1, 2, 3, 4, 5]
>>> print mylist
[[6, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)
请注意如何L
更改,并且只更改了第一个列表mylist
.
感谢所有评论中的帮助:).