当前位置: 首页 > news >正文

Day44:列表元素的修改

在 Python 中,列表是一种可变的数据结构,意味着我们可以对列表中的元素进行修改。修改列表元素的方式有很多种,包括通过索引修改、切片修改、使用 append()extend() 添加新元素、以及删除元素等。今天,我们将学习如何在列表中修改元素。

1. 使用索引修改单个元素

通过索引可以访问并修改列表中的单个元素。Python 列表的索引从 0 开始,所以第一个元素的索引是 0,第二个元素的索引是 1,以此类推。

示例:

list1 = [10, 20, 30, 40, 50]# 修改索引为 2 的元素
list1[2] = 100
print(list1)

输出结果:

[10, 20, 100, 40, 50]

注意:

  • 通过索引修改的元素会直接替换原来的值。
  • 如果使用的索引超出了列表的范围,会抛出 IndexError 错误。

2. 使用切片修改多个元素

切片不仅可以用来访问列表的子部分,还可以用来修改多个连续的元素。切片允许我们通过指定一个范围来一次性修改多个元素。

示例:

list1 = [10, 20, 30, 40, 50]# 修改索引从 1 到 3(不包含 3)的元素
list1[1:3] = [200, 300]
print(list1)

输出结果:

[10, 200, 300, 40, 50]

注意:

  • 使用切片修改时,切片的右侧部分可以是一个包含多个元素的列表,这些元素将替换切片位置上的原始元素。
  • 如果切片的右侧部分比切片的左侧部分包含更多或更少的元素,列表的长度也会相应变化。

3. 使用 append() 方法添加元素

append() 方法用于在列表的末尾添加一个元素。这个方法会将新元素添加到列表的最后,而不改变列表中的其他元素。

示例:

list1 = [10, 20, 30, 40]# 添加元素 50 到列表的末尾
list1.append(50)
print(list1)

输出结果:

[10, 20, 30, 40, 50]

注意:

  • append() 方法一次只能添加一个元素。如果你想同时添加多个元素,可以使用 extend() 方法。

4. 使用 extend() 方法合并列表

extend() 方法用于将一个列表的所有元素添加到另一个列表的末尾。与 append() 不同,extend() 会将传入的列表的元素逐个添加,而不是将整个列表作为一个元素添加。

示例:

list1 = [10, 20, 30]
list2 = [40, 50]# 将 list2 中的元素添加到 list1 的末尾
list1.extend(list2)
print(list1)

输出结果:

[10, 20, 30, 40, 50]

注意:

  • extend() 方法不仅可以用于列表之间的合并,也可以用来将元组、字符串等可迭代对象添加到列表中。

5. 使用 insert() 方法插入元素

insert() 方法用于将一个元素插入到列表中的指定位置。它接受两个参数:一个是索引,另一个是要插入的元素。

示例:

list1 = [10, 20, 30, 40]# 在索引 2 处插入元素 25
list1.insert(2, 25)
print(list1)

输出结果:

[10, 20, 25, 30, 40]

注意:

  • insert() 方法不会替换任何元素,它会将新元素插入到指定的索引位置,其他元素会依次向后移动。
  • 如果指定的索引大于列表的长度,新元素会被添加到列表的末尾;如果索引为负数,表示从列表的尾部开始计数。

6. 使用 remove() 方法删除元素

remove() 方法用于删除列表中的第一个匹配元素。如果列表中有多个相同的元素,只会删除第一个匹配的元素。

示例:

list1 = [10, 20, 30, 20, 40]# 删除第一个值为 20 的元素
list1.remove(20)
print(list1)

输出结果:

[10, 30, 20, 40]

注意:

  • 如果列表中没有该元素,remove() 会抛出 ValueError 错误。
  • remove() 删除的是元素的第一个匹配项,而不是索引位置。

7. 使用 pop() 方法删除并返回元素

pop() 方法用于删除指定索引位置的元素,并返回该元素的值。如果不指定索引,默认删除并返回列表的最后一个元素。

示例:

list1 = [10, 20, 30, 40]# 删除并返回索引 2 的元素
popped_element = list1.pop(2)
print(popped_element)
print(list1)

输出结果:

30
[10, 20, 40]

注意:

  • pop() 方法会修改原始列表,并返回删除的元素。如果列表为空,调用 pop() 会抛出 IndexError 错误。

8. 使用 clear() 方法清空列表

clear() 方法用于删除列表中的所有元素,使列表变为空列表。

示例:

list1 = [10, 20, 30, 40]# 清空列表
list1.clear()
print(list1)

输出结果:

[]

注意:

  • clear() 方法会清空列表中的所有元素,列表将变成空列表。

9. 小结

在 Python 中,列表是一个非常灵活和强大的数据结构,我们可以使用多种方法来修改列表中的元素。常用的操作包括通过索引修改单个元素、使用切片修改多个元素、使用 append()extend() 添加元素、使用 remove()pop() 删除元素、以及清空列表等。


10. 课后练习

练习 1:修改列表中的某个元素

给定一个列表 [10, 20, 30, 40],将索引为 2 的元素修改为 100,并打印修改后的列表。

练习 2:使用切片修改列表元素

给定一个列表 [1, 2, 3, 4, 5],将索引从 1 到 3 的元素修改为 [200, 300],并打印修改后的列表。

练习 3:使用 append() 添加元素

给定一个列表 [1, 2, 3],使用 append() 方法向列表末尾添加元素 4,并打印修改后的列表。

练习 4:使用 insert() 插入元素

给定一个列表 [10, 20, 30],在索引为 1 的位置插入元素 25,并打印修改后的列表。

练习 5:使用 remove() 删除元素

给定一个列表 [5, 10, 15, 20, 25],删除值为 15 的元素,并打印修改后的列表。

练习 6:使用 pop() 删除元素并返回

给定一个列表 [10, 20, 30, 40],使用 pop() 方法删除并返回索引 1 的元素,并打印删除的元素和修改后的列表。

练习 7:清空列表

给定一个列表 [1, 2, 3, 4],使用 clear() 方法清空列表,并打印修改后的列表。

相关文章:

Day44:列表元素的修改

在 Python 中,列表是一种可变的数据结构,意味着我们可以对列表中的元素进行修改。修改列表元素的方式有很多种,包括通过索引修改、切片修改、使用 append() 和 extend() 添加新元素、以及删除元素等。今天,我们将学习如何在列表中…...

在 AMD GPU 上使用 vLLM 的 Triton 推理服务器

Triton Inference Server with vLLM on AMD GPUs — ROCm Blogs 2025年1月8日,作者:Fabricio Flores,Tiffany Mintz,Eliot Li,Yao Liu,Ted Themistokleous,Brian Pickrell,Vish Vadl…...

day7手机拍照装备

对焦对不上:1、光太暗;2、离太近;3、颜色太单一没有区分点 滤镜可以后期P 渐变灰滤镜:均衡色彩,暗的地方亮一些,亮的地方暗一些 中灰滤镜:减少光差 手机支架:最基本70cm即可 手…...

HarmonyOS:创建应用静态快捷方式

一、前言 静态快捷方式是一种在系统中创建的可以快速访问应用程序或特定功能的链接。它通常可以在长按应用图标,以图标和相应的文字出现在应用图标的上方,用户可以迅速启动对应应用程序的组件。使用快捷方式,可以提高效率,节省了查…...

[SUCTF 2018]MultiSQL1

进去题目页面如下 发现可能注入点只有登录和注册,那么我们先注册一个用户,发现跳转到了/user/user.php, 查看用户信息,发现有传参/user/user.php?id1 用?id1 and 11,和?id1 and 12,判断为数字型注入 原本以为是简单的数字型注入,看到大…...

kafka-部署安装

一. 简述: Kafka 是一个分布式流处理平台,常用于构建实时数据管道和流应用。 二. 安装部署: 1. 依赖: a). Java:Kafka 需要 Java 8 或更高版本。 b). zookeeper: #tar fxvz zookeeper-3.7.0.tar.gz #…...

VUE3 使用路由守卫函数实现类型服务器端中间件效果

vue3中的router组件,有一个函数 router.beforeEach,可以实现请求中间件效果 使用方法如下: 前提已经在Vue3 项目中引入router组件,在router.js文件中加入router.beforeEach //路由守卫函数,类似于中间件session效果…...

|Python新手小白中级教程|第二十九章:面向对象编程(Python类的拓展延伸与10道实操题目)(5)

文章目录 前言1.类变量与实例变量2.静态方法和类方法1.静态方法2.类方法 3.实操使用1. 创建一个名为Person的类,包含属性name和age,并且有一个方法introduce()用于介绍自己的名字和年龄。2. 创建一个名为Circle的类,包含属性radius和color&am…...

项目概述与规划 (I)

项目概述与规划 (I) JavaScript的学习已经接近尾声了,最后我们将通过一个项目来讲我们在JavaScript中学习到的所有都在这个项目中展现出来,这个项目的DEMO来自于Udemy中的课程,作者是Jonas Schmedtmann; 项目规划 项目步骤 用户…...

mysql学习笔记-数据库的设计规范

1、范式简介 在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。 1.1键和相关属性的概念 超键:能唯一标识元组的属性集叫做超键。 候选键:如果超键不包括多余的属性,那么这个超键就是候选键 主键:用户可以从候选键中选择一个作为主键。 外…...

实现B-树

一、概述 1.历史 B树(B-Tree)结构是一种高效存储和查询数据的方法,它的历史可以追溯到1970年代早期。B树的发明人Rudolf Bayer和Edward M. McCreight分别发表了一篇论文介绍了B树。这篇论文是1972年发表于《ACM Transactions on Database S…...

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(四)

Understanding Diffusion Models: A Unified Perspective(四) 文章概括学习扩散噪声参数(Learning Diffusion Noise Parameters)三种等效的解释(Three Equivalent Interpretations) 文章概括 引用&#xf…...

C# 中 default 使用详解

总目录 前言 在C#中,default 关键字用于表示类型默认值。它可以根据上下文推断出适用的类型,并返回该类型的默认值。随着C#版本的发展,default 的用法也变得更加丰富和灵活。本文将详细介绍 default 在不同场景下的使用方法及其最佳实践。 一…...

Day21-【软考】短文,计算机网络开篇,OSI七层模型有哪些协议?

文章目录 OSI七层模型有哪些?有哪些协议簇?TCP/IP协议簇中的TCP协议三次握手是怎样的?基于UDP的DHCP协议是什么情况?基于UDP的DNS协议是什么情况? OSI七层模型有哪些? 题目会考广播域 有哪些协议簇&#x…...

电力晶体管(GTR)全控性器件

电力晶体管(Giant Transistor,GTR)是一种全控性器件,以下是关于它的详细介绍:(模电普通晶体管三极管进行对比学习) 基本概念 GTR是一种耐高电压、大电流的双极结型晶体管(BJT&am…...

C语言------指针从入门到精通

第一部分: 前言: 本篇文章主要划分为两大部分: 第一部分适合零基础的同学,主要学习了解指针的概念,对指针大概有个概念。如果你已经有基础,即可跳过第一部分的内容。 第二部分主要是分解指针的实现逻辑,通过19个例子,再结合代码公式把不同类型的指针及指针的应用详细…...

网络安全大模型和人工智能场景及应用理解

本文通过通俗易懂的方式的进行阐述,大家读完觉得有帮助记得及时关注和点赞!!! 一、网络安全大模型的概述 网络安全大模型是一种用于识别和应对各种网络安全威胁的模型。它通过分析网络数据包、网络行为等信息,识别潜在…...

大模型正确调用方式

1、ollama 安装 curl -fsSL https://ollama.com/install.sh | sh 如果是AutoDl服务器,可以开启学术加速。 source /etc/network_turbo 本次使用腾讯云Cloud Studio,所以已经安装好了 Ollama 2、启动 ollama run 模型的名字 ollama serve # 开启服务 olla…...

rocketmq原理源码分析之控制器模式- dledger

简介 RocketMQ 4.5 版本之前,RocketMQ 的broker是 Master/Slave部署架构,一组 broker 有一个 Master ,有0到若干Slave,Slave复制Master消息存储,随时替代下线的Master。Master/Slave部署架构提供一定的高可用性&#x…...

Deployment 部署 Pod 流程

文章目录 k8s组件介绍部署文件示例部署 Pod 流程创建 Service 通过创建 Deployment 资源,来看看 k8s 部署 Pod 流程 k8s组件介绍 首先看看 k8s 各组件功能。 control plane 控制平面主要包含以下组件: kube-api-server: 顾名思义,负责处理所…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

【位运算】消失的两个数字(hard)

消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...