自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
添加、修改和删除列表元素也称为更新列表。在实际开发时,经常需要对列表进行更新。下面我们介绍如何实现列表元素的添加、修改和删除。
(1)添加元素
在4.1节介绍了可以通过“+”号将两个序列连接,通过该方法也可以实现为列表添加元素。但是这种方法的执行速度要比直接使用列表对象的append()方法慢,所以建议在实现添加元素时,使用列表对象的append()方法实现。列表对象的append()方法用于在列表的末尾追加元素,语法格式如下:
listname.append(obj)
其中,listname为要添加元素的列表名称,obj为要添加到列表末尾的对象。
例如,定义一个包括4个元素的列表,然后应用append()方法向该列表的末尾添加一个元素,可以使用下面的代码:
phone = ["摩托罗拉","诺基亚","三星","OPPO"]
len(phone) # 获取列表的长度
phone.append("iPhone")
len(phone) # 获取列表的长度
print(phone)
上面的代码在IDLE中的Shell窗口中逐行执行的过程如图9所示。
图9 向列表中添加元素
多学两招:列表对象除了提供append()方法可以向列表中添加元素,还提供了insert()方法也可以向列表中添加元素。该方法用于向列表的指定位置插入元素。但是由于该方法的执行效率没有append()方法高,所以不推荐这种方法。
上面介绍的是向列表中添加一个元素,如果想要将一个列表中的全部元素添加到另一个列表中,可以使用列表对象的extend()方法实现。extend()方法的语法如下:
listname.extend(seq)
其中,listname为原列表,seq为要添加的列表。语句执行后,seq的内容将追加到listname的后面。
下面通过一个具体的实例演示将一个列表添加到另一个列表中。
场景模拟:NBA名人堂差不多每年都有新增加的球星。2018年又新增了三位,现编程实现将他们添加到NBA名人堂列表中。
实例03 向NBA名人堂列表中追加2018年新进入的球星
在IDLE中创建一个名称为nba.py的文件,然后在该文件中定义一个保存NBA名人堂原有球星名字的列表,然后创建一个保存2018年新进入球星名字的列表,再调用列表对象的extend()方法追加元素,最后输出追加元素后的列表,代码如下:
# NBA名人堂原有人员
oldlist = ["迈克尔・乔丹","卡里姆・阿布杜尔・贾巴尔","哈基姆・奥拉朱旺","查尔斯・巴克利","姚明"]
newlist = ["贾森・基德","史蒂夫・纳什","格兰特・希尔"] # 新增人员列表
oldlist.extend(newlist) # 追加新球星
print(oldlist) # 显示新的NBA名人堂人员列表
运行结果如图10所示。
图10 向NBA名人堂列表中追加2018年新进入的球星
(2)修改元素
修改列表中的元素只需要通过索引获取该元素,然后再为其重新赋值即可。例如,定义一个保存3个元素的列表,然后修改索引值为2的元素,代码如下:
verse = ["长亭外","古道边","芳草碧连天"]
print(verse)
verse[2] = "一行白鹭上青天" # 修改列表的第3个元素
print(verse)
上面的代码在IDLE中的执行过程如图11所示。
图11 修改列表的指定元素
(3)删除元素
删除元素主要有两种情况,一种是根据索引删除,另一种是根据元素值进行删除。
l 根据索引删除
删除列表中的指定元素和删除列表类似,也可以使用del语句实现。所不同的就是在指定列表名称时,换为列表元素。例如,定义一个保存3个元素的列表,删除最后一个元素,可以使用下面的代码:
verse = ["长亭外","古道边","芳草碧连天"]
del verse[-1]
print(verse)
上面的代码在IDLE中的执行过程如图12所示。
图12 删除列表的指定元素
l 根据元素值删除
如果想要删除一个不确定其位置的元素(即根据元素值删除),可以使用列表对象的remove()方法实现。例如,要删除列表中内容为“公牛”的元素,可以使用下面的代码:
team = ["火箭","勇士","开拓者","爵士","鹈鹕","马刺","雷霆","森林狼"]
team.remove("公牛")
使用列表对象的remove()方法删除元素时,如果指定的元素不存在,将出现如图13所示的异常信息。
图13 删除不存在的元素时出现的异常信息
所以在使用remove()方法删除元素前,最好先判断该元素是否存在,改进后的代码如下:
team = ["火箭","勇士","开拓者","爵士","鹈鹕","马刺","雷霆","森林狼"]
value = "公牛" # 指定要移除的元素
if team.count(value)>0: # 判断要删除的元素是否存在
team.remove(value) # 移除指定的元素
print(team)
说明:列表对象的count()方法用于判断指定元素出现的次数,返回结果为0时,表示不存在该元素。
执行上面的代码后,将显示下面的列表原有内容:
['火箭', '勇士', '开拓者', '爵士', '鹈鹕', '马刺', '雷霆', '森林狼']