如何通过在旧列表的某个位置附加值来创建新列表

时间:2019-06-12 02:28:30

标签: python python-3.x

我正在尝试创建一个新列表,该列表是其他列表的副本。我想通过更改特定位置的值来修改此新列表。

我找到了this question,最受支持的答案可以列出一个新列表并添加到旧列表中。这是一个好的开始,但是我想确定添加的位置(在他的版本中,它只是将其添加到列表的末尾)

他所拥有的:

myList = [10,20,30] 

yourList = myList + [40]

print("your list: " + yourList) 
  

您的列表:[10,20,30,40]

在这种情况下,我希望能够更改列表中40的位置,即

  

您的列表:[10,40,20,30]

我不确定该怎么做。谢谢! (如果不清楚,这里很新,很抱歉)

3 个答案:

答案 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)