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: 顾名思义,负责处理所…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...