当前位置: 首页 > 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: 顾名思义,负责处理所…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来&#xf…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

网络编程(UDP编程)

思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

git: early EOF

macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

中国政务数据安全建设细化及市场需求分析

(基于新《政务数据共享条例》及相关法规) 一、引言 近年来,中国政府高度重视数字政府建设和数据要素市场化配置改革。《政务数据共享条例》(以下简称“《共享条例》”)的发布,与《中华人民共和国数据安全法》(以下简称“《数据安全法》”)、《中华人民共和国个人信息…...