列表的增删改查
Python 为列表类型提供了一系列内置操作,包括 append()
、insert()
、pop()
、remove()
等函数,能够很方便的处理上述列表元素变化的情况。我们以上述客人名单列表为例介绍这几种列表操作方法。
添加列表元素
Python 提供了 append()
和insert()
等函数,实现向一个列表增加新元素的功能。
(1)在列表尾部添加元素。
在 Python 中,可以使用 append() 方法向一个列表的尾部追加一个元素,其基本语法如下:
source_list.append(obj)
其中:
source_list:待修改的列表;
obj:待插入的元素。
例如,要向 guests 列表尾部增加客人 Hu qi,相应的语句为:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 向guests列表尾部追加一个名为Hu qi的客人
guests.append('Hu qi')
# 输出新的guests列表
print(guests)
输出结果为:
[‘Zhang san’,‘Li si’,‘Wang wu’,‘Zhao liu’,‘Hu qi’]
(2)在列表指定位置添加元素。
Python 也提供了 insert() 方法,可以在列表任意指定位置插入元素,其基本语法为:
source_list.insert(index,obj)
其中:
source_list:待修改的列表;
index:待插入的位置索引;
obj:待插入的元素。
注意:在 Python 中,列表起始元素的位置索引为 0。
例如,要向 guests 列表中 Zhang san 的后面增加客人 Hu qi,则相应的语句为:
# 创建并初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 向guests列表Zhang san后面增加一个名为Hu qi的客人
guests.insert(1,'Hu qi')
# 输出新的guests列表
print(guests)
输出结果为:
[‘Zhang san’,‘Hu qi’,‘Li si’,‘Wang wu’,‘Zhao liu’]
修改列表元素
Python 中修改列表元素的方法为:直接将列表中要修改的元素索引指出,然后为其指定新值。其基本语法如下:
source_list[index] = obj
其中:
source_list:待修改的列表;
index:待修改元素的位置索引;
obj:待元素的新值。
例如,将请客名单 guests 列表中的 Wang wu 改为 Wang shi,则相应的语句为:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 将列表中的`Wang wu`改为`Wang shi`
guests[2] = 'Wang shi'
# 输出新的guests列表
print(guests)
输出结果为:
[‘Zhang san’,‘Li si’,‘Wang shi’,‘Zhao liu’]
删除列表元素
Python 提供了多种不同的方法来实现对列表中元素的删除操作,包括根据元素索引位置或者元素值删除元素的方法。
(1)删除指定位置的元素。
del
方法:
在 Python 中,调用 del 函数能够删除指定索引位置的元素,其基本语法如下:
del source_list[index]
其中:
source_list:待修改的列表;
index:待删除元素的位置索引。
例如,将请客名单 guests 列表中的 Zhang san 删除,则相应的语句为:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 将列表中的`Zhang san`删除
del guests[0]
# 输出新的guests列表
print(guests)
输出结果为:
[‘Li si’,‘Wang wu’,‘Zhao liu’]
pop
方法:
Python 还提供了 pop() 方法来删除元素,该方法将从源列表删除对应元素,同时返回被删除的元素。其基本语法如下:
deleted_obj = source_list.pop(index)
其中:
deleted_obj:保存被删除元素的变量,可根据需要自由命名;
source_list:待修改的列表;
index:待删除元素的位置索引。
注意:index 参数为可选项,不填则默认删除列表末尾的元素。
例如,将请客名单 guests 列表中的 Zhang san 删除,则相应的语句为:
# 初始化guests列表
guests=['Zhang san','Li si','Wang wu','Zhao liu']
# 将列表中的`Zhang san`删除
deleted_obj = guests.pop(0)
# 输出被删除的元素以及删除后的guests列表
print(deleted_obj)
print(guests)
输出结果为:
Zhang san
[‘Li si’,‘Wang wu’,‘Zhao liu’]
(2)删除指定值对应的元素。
有些时候我们并不知道要删除元素的位置索引,怎么办呢?别着急,Python 还提供了 remove() 方法,可以直接通过元素值来删除对应的元素。其基本语法如下:
source_list.remove(obj)
其中:
source_list:待修改的列表;
obj:待删除元素的值。
注意:如果列表中有多个值为 obj 的元素,remove 仅删除位置索引最靠前的那个元素。
例如,将请客名单 guests 列表中的 Zhang san 删除,则相应的语句为:
# 初始化guests列表,列表中有多个名为Zhang san的客人
guests=['Zhang san','Li si','Wang wu','Zhao liu','Zhang san']
# 将列表中的`Zhang san`删除
guests.remove('Zhang san')
# 输出新的guests列表
print(guests)
输出结果为:
[‘Li si’,‘Wang wu’,‘Zhao liu’,‘Zhang san’]
小归纳
需要注意的是,文中提到的有的是方法,有的函数,在面向对象编程中,方法是用列表作业对象调用出来的,而函数则直接声明就可以