添加、修改和删除列表元素

news2024/11/20 20:33:49

自学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时,表示不存在该元素。

执行上面的代码后,将显示下面的列表原有内容:

['火箭', '勇士', '开拓者', '爵士', '鹈鹕', '马刺', '雷霆', '森林狼']

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1686801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习之使用Matlab乳腺癌分类检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 乳腺癌作为女性最常见的恶性肿瘤之一,对女性的健康构成了严重威胁。乳腺癌的早期发…

基于51单片机的音乐喷泉

基于51单片机的音乐喷泉 (程序+原理图+PCB+设计报告) 功能介绍 具体功能: 1.检测音乐信号的声音强度,使喷头的水柱能够根据音乐的节奏和音量起伏; 2.系统将声音强度转化为模拟信…

神经网络的工程基础(三)——更优化的最优化算法

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。 本文将讨论更优化的最优化问题算法。 关于大语言模型的内容,推荐参考这个专栏。 内容大纲 相关说明一、概述二、算…

【你眼中的IT行业现状与未来趋势展望】

随着技术的不断进步,IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链,这些技术正在重塑我们的生活和工作方式。你眼中IT行业的现状及未来发展趋势是怎么样的?无论您是行业领袖、技术专家…

K8S中Prometheus+Grafana监控

1.介绍 phometheus:当前一套非常流行的开源监控和报警系统。 运行原理:通过HTTP协议周期性抓取被监控组件的状态。输出被监控组件信息的HTTP接口称为exporter。 常用组件大部分都有exporter可以直接使用,比如haproxy,nginx,Mysql,Linux系统信…

论文精读:UFO: A UI-Focused Agent for Windows OS Interaction

UFO : A UI-Focused Agent for Windows OS Interaction Status: Reading Author: Bo Qiao, Chaoyun Zhang, Dongmei Zhang, Liqun Li, Minghua Ma, Qinglong Zhang, Qingwei Lin, Saravan Rajmohan, Shilin He, Si Qin, Xiangyu Zhang, Yu Kang Institution: 微软(…

Xline 0.7重构性能分析总述

1、重构概述 在Xline 0.7.0中,我们完成了对Xline代码库中进行了一次较大的重构。这次重构在某些性能测试中甚至使得Xline获得了近20倍的性能提升。在本文中我会讲解Xline中重构后命令执行流程的新设计,以及我们是如何优化Xline的性能的。 2、etcd的性能…

Map遍历、反射、GC

map的遍历 用foreach遍历 HashMap<Character,Integer> map new HashMap<>();map.put(A,2);map.put(B,3);map.put(C,3);for (Map.Entry<Character,Integer> entry: map.entrySet()) {char key entry.getKey();int value entry.getValue();System.out.prin…

Nacos 进阶篇---服务发现:服务之间请求调用链路分析(六)

一、引言 前面几个章节把Nacos服务注册从客户端到服务端&#xff0c;整个流程源码都分析了一遍。 本章节我们来分析&#xff0c;order-service、stock-service 完成Nacos注册后&#xff0c;可以通过Feign的方式&#xff0c;来完成服务之间的调用。那它的底层是如何实现的&am…

linux下的docker使用

docker是什么&#xff0c;docker翻译过来的意思就是码头工人&#xff0c;顾名思义&#xff0c;docker本质上就是一个搬运工&#xff0c;只不过从搬运货物改成了搬运程序&#xff0c;使搬运的不同的程序能够独立的运行在码头上的不同容器内&#xff0c;互不干扰&#xff0c;而他…

不使用ScrollRect 和 HorizontalLayoutGroup做的横向循环列表

一、 版本一 1.前情提要 因为需要展示300多个相同的物体&#xff0c;但是如果全部放在场景内&#xff0c;运行起来会很卡&#xff0c;所以想到了用无限循环&#xff0c;然后动态填充不同的数据。 做的这个没有用HorizontalLayoutGroup 和 ScrollRect 。 1.没有使用Horizontal…

Git原理及常用命令小结——实用版(ing......)、Git设置用户名邮箱

Git基本认识 Git把数据看作是对小型文件系统的一组快照&#xff0c;每次提交更新&#xff0c;或在Git中保存项目状态时&#xff0c;Git主要对当时的全部文件制作一个快照并保存这个快照的索引。同时&#xff0c;为了提高效率&#xff0c;如果文件没有被修改&#xff0c;Git不再…

JSON的序列化与反序列化以及VSCode执行Run Code 报错

JSON JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式。 JSON格式 { "name":"金苹果", "info":"种苹果" } 一个对象&#xff1a;由一个大括号表示.括号中通过键值对来描述对象的属性 (可以理解为, 大…

操作系统总结(2)

目录 2.1 进程的概念、组成、特征 &#xff08;1&#xff09;知识总览 &#xff08;2&#xff09;进程的概念 &#xff08;3&#xff09;进程的组成—PCB &#xff08;4&#xff09;进程的组成---程序段和数据段 &#xff08;5&#xff09;程序是如何运行的呢&#xff1f…

Android和flutter交互,maven库的形式导入aar包

记录遇到的问题&#xff0c;在网上找了很多资料&#xff0c;都是太泛泛了&#xff0c;使用后&#xff0c;还不能生效&#xff0c;缺少详细的说明&#xff0c;或者关键代码缺失&#xff0c;我遇到的问题用红色的标注了 导入aar包有两种模式 1.比较繁琐的&#xff0c;手动将aar…

Java8-HashMap实现原理

目录 HashMap原理 hashmap的put流程&#xff1a; HashMap扩容机制&#xff1a; HashMap的寻址算法&#xff1a; HashMap原理 HashMap的底层数据结构是由&#xff0c;数组&#xff0c;链表和红黑树组成的。 当我们往HashMap中put元素的时候&#xff0c;利用key的hashCode重…

HC32F103BCB使用SPI获取AS5040编码器数据

1.AS5040介绍 2.硬件电路 硬件上使用SSI通信方式连接。 3.配置硬件SPI 查看手册&#xff0c;AS5040时序 可以看到在空闲阶段不发生数据传输的时候时钟(CLK)和数据(DO)都保持高电位(tCLKFE阶段)&#xff0c;在第一个脉冲的下降沿触发编码器载入发送数据&#xff0c;然后每一个…

【Unity Shader入门精要 第9章】更复杂的光照(四)

1. 透明度测试物体的阴影 对于物体有片元丢弃的情况&#xff0c;比如透明度测试或者后边会讲到的消融效果&#xff0c;使用默认的 ShadowCaster Pass 会产生问题&#xff0c;这是因为该Pass在生成阴影映射纹理时&#xff0c;没有考虑被丢弃的片元&#xff0c;而是使用完整的模…

FTP文件传输议

FTP是一种文件传输协议&#xff1a;用来上传和下载&#xff0c;实现远程共享文件&#xff0c;和统一管理文件 工作原理&#xff1a;用于互联网上的控制文件的双向传输是一个应用程序。工作在TCP/IP协议簇的&#xff0c;其传输协议是TCP协议提高文件传输的共享性和可靠性&#…

阅读笔记——《AFLNeTrans:状态间关系感知的网络协议模糊测试》

【参考文献】洪玄泉,贾鹏,刘嘉勇.AFLNeTrans&#xff1a;状态间关系感知的网络协议模糊测试[J].信息网络安全,2024,24(01):121-132.【注】本文仅为作者个人学习笔记&#xff0c;如有冒犯&#xff0c;请联系作者删除。 目录 摘要 1、引言 2、背景及动机 2.1、网络协议实现程…