我正在尝试创建一个新列表,该列表是其他列表的副本。我想通过更改特定位置的值来修改此新列表。
我找到了this question,最受支持的答案可以列出一个新列表并添加到旧列表中。这是一个好的开始,但是我想确定添加的位置(在他的版本中,它只是将其添加到列表的末尾)
他所拥有的:
myList = [10,20,30]
yourList = myList + [40]
print("your list: " + yourList)
您的列表:[10,20,30,40]
在这种情况下,我希望能够更改列表中40的位置,即
您的列表:[10,40,20,30]
我不确定该怎么做。谢谢! (如果不清楚,这里很新,很抱歉)
答案 0 :(得分:1)
使用切片将原始列表按所需索引分开,然后重新放回原处。
例如:
insert_at = 1
myList = [10,20,30]
# Uses PEP 448 unpacking generalizations to avoid excess temporary `list`s
yourList = [*myList[:insert_at], 40, *my_list[insert_at:]]
# Or via concatenation (involves an extra temporary)
yourList = myList[:insert_at] + [40] + my_list[insert_at:]
print("your list: " + yourList)
或者,如果您不需要单线,请复制list
,然后在副本上调用insert
:
yourList = myList[:] # myList.copy() also works on Python 3
yourList.insert(insert_at, 40)
答案 1 :(得分:0)
要保留相同的列表:
使用insert
类的list
方法
myList.insert(1, 40)
insert(index, element)
将element
插入位置index
的列表中-根据需要向右移动其余元素。
创建新列表:
new_list = myList.copy()
new_list.insert(1, 40)
答案 2 :(得分:0)
您可以复制列表,然后将值插入新列表中,如下所示:
my_list = [1,2,3,4,5,6]
my_2_list = my_list.copy()
然后我将其插入到我可以做的3号位置
my_2_list.insert(3, value)