本文目录导读:

在Python中,列表插入指定位置主要使用 insert() 方法,下面是几种常见的方式:
使用 insert() 方法
# 基本语法:list.insert(index, element) fruits = ['apple', 'banana', 'cherry'] fruits.insert(1, 'orange') # 在索引1的位置插入'orange' print(fruits) # 输出:['apple', 'orange', 'banana', 'cherry']
不同位置插入示例
# 在开头插入 numbers = [1, 2, 3] numbers.insert(0, 0) # 在索引0的位置插入 print(numbers) # 输出:[0, 1, 2, 3] # 在末尾插入(等同于append) numbers.insert(len(numbers), 4) # 在列表末尾插入 print(numbers) # 输出:[0, 1, 2, 3, 4] # 在中间插入 letters = ['a', 'c', 'd'] letters.insert(1, 'b') # 在索引1的位置插入 print(letters) # 输出:['a', 'b', 'c', 'd']
特殊情况的索引
# 负数索引 - 从末尾开始数 fruits = ['apple', 'banana', 'cherry'] fruits.insert(-1, 'orange') # 在倒数第一的位置前插入 print(fruits) # 输出:['apple', 'banana', 'orange', 'cherry'] # 索引超出范围 - 自动插入到末尾 fruits.insert(100, 'grape') print(fruits) # 输出:['apple', 'banana', 'orange', 'cherry', 'grape']
实用示例:保持有序列表
# 在有序列表中插入元素,保持排序
def insert_sorted(lst, value):
"""在有序列表中插入元素,保持升序"""
for i, item in enumerate(lst):
if value < item:
lst.insert(i, value)
return lst
lst.append(value)
return lst
numbers = [1, 3, 5, 7, 9]
insert_sorted(numbers, 4)
print(numbers) # 输出:[1, 3, 4, 5, 7, 9]
使用切片赋值插入(替代方式)
# 通过切片赋值实现插入 fruits = ['apple', 'cherry'] fruits[1:1] = ['banana'] # 在索引1的位置插入 print(fruits) # 输出:['apple', 'banana', 'cherry'] # 一次插入多个元素 fruits[2:2] = ['orange', 'grape'] # 在索引2处插入多个元素 print(fruits) # 输出:['apple', 'banana', 'orange', 'grape', 'cherry']
注意事项
insert()会修改原列表,不会返回新列表- 插入位置索引不能太负(不能小于
-len(list)-1),否则会插入到开头 - 插入操作的时间复杂度为 O(n),因为需要移动后面的元素
选择哪种方法取决于你的具体需求,insert() 是最直接的方式。