列表的增删改查

发布时间 2023-09-04 17:03:37作者: Magiclala

列表的添加

lst = []
# 向列表末尾添加内容
# append() 追加
lst.append("张绍刚")
lst.append("赵本山")
lst.append("张无忌")
print(lst)
# insert() 在指定位置插入,原先该位置以后的所有元素都需要往后挪n个位置,因此插入的效率极低。
lst.insert(0, "赵敏")    #在第0个位置插入
print(lst)
# extend() 可以合并两个列表, 批量的添加
lst.extend(['武则天', "嬴政", "马超"])
print(lst)

输出结果 :

['张绍刚', '赵本山', '张无忌']
['赵敏', '张绍刚', '赵本山', '张无忌']
['赵敏', '张绍刚', '赵本山', '张无忌', '武则天', '嬴政', '马超']

列表的删除

无论是使用del命令,还是使用.remove()命令或者是.pop()命令,删除列表是对原列表直接进行操作,这与之前的字符串操作有很大区别

因此要连续操作,删除指定位置的元素,最好的操作方式是从后往前删,不然会改变实际元素位置的。

del lst删除整个lst列表

del lst[]删除列表中的元素

为了方便展示,我特意把元素按照本身位置进行了标记,请细细体会两者的差异,

lst = ['0', '1', '2', '3', '4', '5', '6']
# 依次删除指定索引位置的元素
del lst[5]  # 删除索引为5的元素
print(lst)
del lst[3]  # 删除索引为3的元素
print(lst)
del lst[1]  # 删除索引为1的元素
print(lst)

#结果是:
['0', '1', '2', '3', '4', '6']
['0', '1', '2', '4', '6']
['0', '2', '4', '6']

如果依次从前向后删除元素,删除后元素的位置会发生变化,列表的位数会缩短,命令甚至会超出。

# 删除
lst = ['0', '1', '2', '3', '4', '5', '6']
# 依次删除指定索引位置的元素
del lst[1]  # 删除索引为1的元素
print(lst)
del lst[3]  # 删除索引为3的元素
print(lst)
del lst[5]  # 删除索引为5的元素
print(lst)

#输出结果
['0', '2', '3', '4', '5', '6']
['0', '2', '3', '5', '6']
Traceback (most recent call last):
  File "D:\Python\列表\删除方法.py", line 43, in <module>
    del lst[5]  # 删除索引为5的元素
        ~~~^^^
IndexError: list assignment index out of range

del命令需要指定元素的索引位置,而.remove()命令可以规避这个溢出的问题。

使用.remove()命令进行删除,不需要知道列表的位置直接删除元素。

lst = ['赵敏', '张绍刚', '赵本山', '张无忌', '武则天', '嬴政', '马超']
lst.remove("马超")  # 删除某个元素
print(lst)

使用.pop()命令删除

pop() 是Python列表(list)的一个方法,用于删除并返回列表中的指定索引位置的元素。这个方法可以有一个可选的参数,用来指定要删除的元素的索引,如果默认不写是删除并返回列表中的最后一个元素(-1)。

语法:

returned = list.pop(index)
  • list:要操作的列表。
  • index:要删除的元素的索引。如果不提供索引,默认为 -1,即删除并返回列表中的最后一个元素。
  • returned:被删除的元素,也是被 pop() 返回的值。
fruits = ["apple", "banana", "cherry"]

# 删除并返回索引为1的元素
removed_fruit = fruits.pop(1)

print(removed_fruit)  # 输出: "banana"
print(fruits)         # 输出: ["apple", "cherry"]

pop执行后列表也被修改,我们分别可以打印出来,修改后的列表与返回的元素