如何使用python重复列表的单个值

如何使用python重复列表的单个值,python,list,coordinates,repeat,Python,List,Coordinates,Repeat,我有一个超过2000个xyz坐标的列表,我只想在第一个坐标出现后重复一个值 [[-2000, 379, -1817]] 我想要这个 [[-2000 379 -1817], [-2000 379 -1817]] 但我只重复这个值,列表中没有其他值 这个值的索引是716,如果l是你的列表,你可以这样做 l[716:716] = [l[716]] 类似于l[:717]+l[716:]的东西应该可以工作。只需将列表乘以一个整数即可 [[-2000, 379, -1817]]*2 例如: [[-

我有一个超过2000个xyz坐标的列表,我只想在第一个坐标出现后重复一个值

[[-2000, 379, -1817]]
我想要这个

[[-2000 379 -1817],
[-2000 379 -1817]]
但我只重复这个值,列表中没有其他值

这个值的索引是716,如果l是你的列表,你可以这样做

l[716:716] = [l[716]]

类似于l[:717]+l[716:]的东西应该可以工作。

只需将列表乘以一个整数即可

[[-2000, 379, -1817]]*2
例如:

 [[-2000, 379, -1817]]*2
 #output: [[-2000, 379, -1817], 
 #         [-2000, 379, -1817]]
注: 如果要更改某个值,请假定您具有以下内容:

a = [[-2000, 379, -1817]]
a = a*2
print a
#output: [[-2000, 379, -1817], [-2000, 379, -1817]]

a[0][0] = 10
print a 
#output  [[10, 379, -1817], [10, 379, -1817]]
a = [[10, 379, -1817] for i in range(2)]
#output: [[10, 379, -1817], 
#         [10, 379, -1817]]

a[0][0] = 3
print a
#output: [[3, 379, -1817],
#         [10, 379, -1817]]
这将只创建一个副本,因此如果修改其中一个副本,另一个副本将被修改

现在,如果要修改每个,而不创建副本,可以执行以下操作:

a = [[-2000, 379, -1817]]
a = a*2
print a
#output: [[-2000, 379, -1817], [-2000, 379, -1817]]

a[0][0] = 10
print a 
#output  [[10, 379, -1817], [10, 379, -1817]]
a = [[10, 379, -1817] for i in range(2)]
#output: [[10, 379, -1817], 
#         [10, 379, -1817]]

a[0][0] = 3
print a
#output: [[3, 379, -1817],
#         [10, 379, -1817]]

使用切片。例如,此处您希望重复索引1处的项目:

>>> lis = [[1], [2], [3]]
>>> lis[1:2] = [lis[1][:] for _ in xrange(2)]
>>> lis
[[1], [2], [2], [3]]
>>> lis[1] is lis[2]  #both lists are different objects.
False
可以使用切片插入尽可能多的项目:

>>> lis = [[1], [2], [3]]
>>> lis[1:2] = [lis[1][:] for _ in xrange(4)]
>>> lis
[[1], [2], [2], [2], [2], [3]]
[:]返回列表的浅表副本。因此,修改lis[1]不会影响lis[2],但如果lis[1]也包含可变对象,则使用copy.deepcopy

如果希望新项目只是对原始对象的引用,请删除[:]

其次,如果它只是一个项目,那么您也可以使用list.insert:

有关列表的帮助。插入:


如果要在列表中插入元素,请执行以下操作:

首先,创建一个测试列表:

>>> li=[list(t) for t in zip(*[iter(range(27))]*3)]
>>> li
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19, 20], [21, 22, 23], [24, 25, 26]]
然后可以插入重复的元素,如下所示:

>>> li.insert(2,li[2])
>>> li
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [6, 7, 8], [9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19, 20], [21, 22, 23], [24, 25, 26]]
                        ^^^^^^^

第二件事不是有效的python数据结构。您的意思是在子列表和元素之间有一个逗号吗?您应该提到在这种情况下执行x[0][0]=4之类的操作将起到什么作用。这将创建同一对象的两个副本,即在适当位置修改一个副本也将影响另一个副本。更好地使用:[-2000379,-1817]对于uuin xrange2]@RemcoGerlich它是有效的,但是你能解释一下为什么吗你会怎么“读”这个?