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) 文章概括 引用…...
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: 顾名思义,负责处理所…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...