如何在Python列表中指定位置i的元素前插入新元素?
在Python列表指定位置前插入元素的实现方法
在Python里,要给列表指定位置的元素前插入新元素,最直接且高效的方式就是利用列表内置的insert()方法,下面详细说明:
方法一:使用list.insert()(推荐)
Python列表自带的insert()方法专门用来处理插入操作,语法非常简单:
your_list.insert(index, new_element)
index:你想要插入新元素的目标索引位置——插入后,新元素会占据这个索引,原来该索引处的元素及后面所有元素都会自动向后移动一位,正好满足“在位置i对应元素之前插入”的需求。new_element:你要插入的新内容,可以是任意数据类型。
对应你的示例:
原列表是[1, 2, 3, 4],想要在元素3(对应索引2)之前插入"desired number",代码如下:
my_list = [1, 2, 3, 4] # 在索引2的位置插入新元素,也就是原元素3的前面 my_list.insert(2, "desired number") print(my_list) # 输出: [1, 2, 'desired number', 3, 4]
方法二:切片拼接(可选)
如果你不想用内置方法,也可以通过列表切片拼接的方式实现,原理是把原列表分成两部分,把新元素夹在中间:
my_list = [1, 2, 3, 4] i = 2 new_element = "desired number" # 切片0到i的部分 + [新元素] + 切片i到末尾的部分 my_list = my_list[:i] + [new_element] + my_list[i:] print(my_list) # 输出同样是: [1, 2, 'desired number', 3, 4]
这种方法适合需要生成新列表而不修改原列表的场景,但如果是直接修改原列表,insert()方法会更高效,因为它不需要创建新的列表对象。
注意:Python的列表索引是从0开始的,如果你习惯从1开始计数位置,记得把你的位置数减1转换成索引哦!比如你说的“位置i=2”(从1数)对应的元素是2,要在它前面插入的话,索引就是1,插入后列表会变成[1, "desired number", 2, 3, 4],这点要根据你的实际需求调整索引值~
内容的提问来源于stack exchange,提问作者Mateus Buarque




