Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列表中重复列表X次_Python_List_Nested Lists - Fatal编程技术网

Python 在列表中重复列表X次

Python 在列表中重复列表X次,python,list,nested-lists,Python,List,Nested Lists,我正在做一个项目,我需要在一个列表中重复一个列表若干次。显然,L.append(L)只是再次添加元素,而不创建单独的列表。我只是不知道如何在大名单中把名单分开 简而言之,这就是我所拥有的: L = [1,2,3,4,5] 如果我想重复,比如说,重复3次,那么我会: L = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]] 我如何做到这一点?我正在大列表中查找列表。不需要任何函数: >>> L = [1,2,3,4,5] >>> [

我正在做一个项目,我需要在一个列表中重复一个列表若干次。显然,
L.append(L)
只是再次添加元素,而不创建单独的列表。我只是不知道如何在大名单中把名单分开

简而言之,这就是我所拥有的:

L = [1,2,3,4,5]
如果我想重复,比如说,重复3次,那么我会:

L = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]

我如何做到这一点?我正在大列表中查找列表。

不需要任何函数:

>>> L = [1,2,3,4,5]
>>> [L]*3
[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
但是,您应该注意,如果更改任何列表中的一个值,所有其他值都将更改,因为它们引用相同的对象

>>> 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]
为了避免这种情况:

>>> 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]]
请注意,
L
没有改变,只有
mylist
中的第一个列表改变了


感谢评论中的每个人的帮助:)。

作为旁注,这不是
L.append(L)
所做的。试试看;你会对它的功能感到惊讶(这是值得理解的)。@abarnert哇,我从来都不知道。这就是找到无限循环时执行的操作吗?它只是将
L
本身的一个副本添加为
L
的最后一个元素。它并不一定是无限的……但是如果你试着,比如说,把它弄平,或者像树一样走,那会给你一个无限的循环。(如果你想一想,打印列表意味着像树一样行走……但是Python足够聪明,在打印列表时可以检查这一点,所以你得到的是
[1,2,3,4,5,[…]
,而不是无限的文本墙。)@Haidro:无论如何,这与
mylist[0]
mylist[1]是一样的
正如您在回答中所解释的,是对同一事物的引用。只是
L
L[5]
是对同一事物的引用。类似的问题:。