Python从入门到高手7.3节-列表的常用操作方法
目录
7.3.1 列表常用操作方法
7.3.2 列表的添加
7.3.3 列表的查找
7.3.4 列表的修改
7.3.5 列表的删除
7.3.6 与列表有关的其它操作方法
7.3.7 与10月说再见
7.3.1 列表常用操作方法
列表类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法。在本节教程中,将着重介绍列表类型的常用操作方法。
7.3.2 列表的添加
(1) list.append(object)
函数说明:
将参数object代表的数据对象添加至列表中,元素被添加至列表的末尾,该方法无返回值。在定义一个空的列表时,无法通过索引来添加元素,否则会抛出异常。添加新的元素需通过本节介绍的列表的添加的一系列方法。
代码实例:
"""
@author: 大神薯条老师
@desc: 列表对象的常用操作方法
"""# 定义一个空的列表,空列表无法通过索引来添加元素
plans = []# 参数object可为任意数据类型
# 执行append方法时,元素被添加至列表的尾部,即列表最右边的位置
plans.append("每天晚上做100个俯卧撑")
plans.append(666)# plans的输出为["每天晚上做100个俯卧撑", 666]
(2) list.insert(index, object)
函数说明:
参数index表示索引值,insert方法用来在index对应的位置插入元素。
代码实例:
"""
@author: 大神薯条老师
@desc: 列表对象的insert方法
"""# 定义一个空的列表plans
plans = []
plans.insert(0, "每天晚上做100个俯卧撑")
# plans的输出为["每天晚上做100个俯卧撑"]# 继续在索引0的位置添加元素66plans.insert(0, 66)
# plans的输出为[66,"每天晚上做100个俯卧撑"]
(3) list.extend(iterable)
函数说明:
在列表的末尾添加一个可迭代对象,无返回值。extend方法只接受可迭代的对象,会将可迭代对象中的元素逐一添加到列表中。
代码实例:
# __author__ = 大神薯条老师
# __desc__ = 执行extend方法在列表末尾添加一个可迭代对象# 定义一个空列表plans
plans = []
plans.extend("每天晚上做100个俯卧撑")
# plans的输出为['每', '天', '晚', '上', '做', '1', '0', '0', '个', '俯', '卧', '撑']'''
同学们需要注意extend方法与append方法的区别。
extend方法是添加一个可迭代对象,
会将可迭代对象中的元素逐个添加到列表中。
append方法是将对象作为一个整体添加到列表中
'''# 定义一个空的列表plans
plans = []
plans.append("每天晚上做100个俯卧撑")
# plans的输出为['每天晚上做100个俯卧撑']
迄今为止学过的可迭代类型有字符串,列表。
7.3.3 列表的查找
(1) list.index(value, [start, [stop]])
函数说明:
在列表中查找元素是否存在,如果存在会返回该元素的索引,如果不存在会抛出异常。start表示查找的起始位置,stop表示查找的结束位置(闭区间,不包括stop)。
start的默认值为0,end的默认值为列表的长度。
代码实例:
# __author__ = 大神薯条老师
# __desc__ = 执行index方法来查找元素的索引# 定义一个空的列表plans
plans = []
plans.append("每天晚上做100个俯卧撑")
plans.append(666)
# plans现在的输出为["每天晚上做100个俯卧撑", 666]index = plans.index(666)
# index的输出为1
(2) list.count(value)
函数说明:
查找元素值value在列表中的数量,value不存在时,返回0。
代码实例:
# __author__ = 大神薯条老师
# __desc__ = 执行count方法来查找元素的数量# 定义一个空的列表numbers
numbers = []
numbers.append(666)
numbers.append(666)
# numbers的输出为[666, 666]count_of_number = numbers.count(666)
# count_of_number的输出为2count_of_number = numbers.count(999)
# count_of_number的输出为0
7.3.4 列表的修改
通过[]+索引来修改列表中的元素:
"""
@author: 大神薯条老师
@desc: 通过[]+索引来修改列表中的元素值
"""numbers = [1, 2, 3]
# 将列表中的第一个元素修改为99
numbers[0] = 99
7.3.5 列表的删除
(1) list.pop([index])
函数说明:
删除索引index对应的元素值,index的值默认为列表的最大索引值,也就是说,pop方法默认删除尾部的元素。列表的最大索引值为列表长度减一。返回值为被删除的列表元素,index的值必须在列表有效的索引范围内,否则会抛出异常。
代码实例:
# __author__ = 大神薯条老师
# __desc__ = 通过pop方法来删除列表中的指定位置的元素# 定义一个空的列表plans
plans = []
plans.append("每天晚上做100个俯卧撑")
plans.append(666)
# plans的输出为["每天晚上做100个俯卧撑", 666]# 1. pop方法不传递任何参数时,默认删除尾部中的元素
plan = plans.pop()
# plan的输出为666
# plans的输出为["每天晚上做100个俯卧撑"]# 在pop方法中传递参数时,表示删除指定索引位置的元素
plan = plans.pop(0)# 2. plan的输出为"每天晚上做100个俯卧撑"
# plans迭代输出为[]# 3. 索引必须在有效的范围之内,否则抛出错误异常
plans.pop()
# 抛出异常,此时的plans为空列表。
(2) list.remove(value)
函数说明:
remove方法用来根据值来删除列表中的元素,无返回值。注意:remove方法只删除第一次匹配的元素
代码实例:
# __author__ = 大神薯条老师
# __desc__ = 调用remove方法来删除元素值# 定义一个空的列表plans
plans = []
plans.append("每天晚上做100个俯卧撑")
plans.append(666)
plans.append(666)
# plans的输出为["每天晚上做100个俯卧撑", 666, 666]plans.remove(666)
# plans的输出为["每天晚上做100个俯卧撑", 666]
(3) list.clear()
函数说明:
无参数,无返回值,一键清空列表中的所有元素。
代码实例:
# __author__ = 大神薯条老师
# __desc__ = 执行clear方法将列表中的元素全部清除# 小美喜欢做计划
plans = ["每天晚上做瑜伽来健身", "每个月看两本书"]# 但是她从来没实现过,在暴怒之下,她一键执行了clear方法将计划全部清除
plans.clear()
# plans的输出为[]
7.3.6 与列表有关的其它操作方法
(1) len(container)
函数说明:
len方法是一个内置方法,用来返回容器数据类型中的元素数目。Python中的复合数据类型都是一种容器类的数据类型。
代码实例:
# __author__ = 大神薯条老师
# __desc__ = 执行len方法获取列表的元素数目# 小美喜欢做计划,却从来不认真去执行
plans = ["每天晚上做瑜伽来健身", "每个月看两本书"]how_many_plans = len(plans)
# how_many_plans的输出为2
(2) list.sort(key=None, reverse=False)
函数说明:
对列表进行原地排序,只使用 < 操作符来进行元素值的比较。 如果在比较过程中发生异常,那么排序操作会失败。参数key的默认值为None, 用来传递带一个参数的函数。sort方法会将列表元素传递给该函数,然后根据该函数的输出来进行比较。例如key=len,那么sort方法会计算列表元素的长度,然后根据长度来进行排序。参数reverse用来指定是降序排序还是升序排序。reverse为False时表示升序排序,为True时表示降序排序。
代码实例:
# __author__ = 大神薯条老师
# __desc__ = 执行sort方法对列表进行排序# 定义一个杂乱无序的数字列表
numbers = [1,3,5,7,1,4,9]
# 执行sort方法来排序,sort方法不带任何参数时表示直接根据元素大小进行升序排序
numbers.sort()
# numbers的输出为[1,1,3,4,5,7,9]# 定义一个杂乱无序的数字列表
numbers = [[1,2,3],[4,5],[6,7,8,9]]# key传递的是len,sort方法会先计算列表元素的len值,然后进行降序排序
numbers.sort(key=len, reverse=True)
# numbers的输出为[[6,7,8,9],[1,2,3],[4,5]]# 在key指定的方法中,传递给该方法的列表项必须是合法的参数类型
# 比如传递简单数据类型给len方法时就会抛出异常
(3) str.join(list)
函数说明:
当列表中的元素类型全为字符串时,可以通过字符串的join方法将列表中的元素组成以str做为分隔符的字符串。
代码实例:
# __author__ = 大神薯条老师
# __desc__ = 执行字符串类型的join方法来将列表中的元素进行拼接# 小美喜欢做计划,却从来不认真去执行
plans = ["每天晚上做瑜伽来健身", "每个月看两本书"]# plans_never_implemented变量表示从未认真执行过的计划
plans_never_implemented =",".join(plans)# plans_never_implemented的输出为"每天晚上做瑜伽来健身,每个月看两本书"
7.3.7 与10月说再见
跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。
薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客http://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。
相关文章:
Python从入门到高手7.3节-列表的常用操作方法
目录 7.3.1 列表常用操作方法 7.3.2 列表的添加 7.3.3 列表的查找 7.3.4 列表的修改 7.3.5 列表的删除 7.3.6 与列表有关的其它操作方法 7.3.7 与10月说再见 7.3.1 列表常用操作方法 列表类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法。在本…...

Prompt提示词设计:如何让你的AI对话更智能?
Prompt设计:如何让你的AI对话更智能? 在人工智能的世界里,Prompt(提示词)就像是一把钥匙,能够解锁AI的潜力,让它更好地理解和响应你的需求。今天,我们就来聊聊如何通过精心设计的Pr…...

2024-10月的“冷饭热炒“--解读GUI Agent 之computer use?phone use?——多模态大语言模型的进阶之路
GUI Agent 之computer use?phone use?——多模态大语言模型的进阶之路 1.最新技术事件浅析三、思考和方案设计工具代码部分1.提示词2.工具类API定义,这里主要看computer tool就够了 总结 本文会总结概括这一应用的利弊,然后给出分析和工具代…...
Me 攒的GPT修改论文提示词
没有会员的GPT They demonstrated that QGAN exhibits an exponential advantage over classical methods when using data consisting of samples of measurements made on high-dimensional spaces. 作为related work 时态对吗? 有需要修改的吗?你可…...

关于在vue2中接受后端返回的二进制流并进行本地下载
后端接口返回: 前端需要在两个地方写代码: 1.封装接口处,responseType: blob 2.接收相应处 download() {if (this.selectionList.length 0) {this.$message.error("请选择要导出的数据!");} else {examineruleExport…...
[BUG]warn(f“Failed to load image Python extension: {e}“)的解决办法
在使用LlaMa-Factory工具包时,安装好环境后,输入llamafactory-cli env查看llama-factory的版本等信息时,bash提醒: /home/ubuntu/anaconda3/envs/Llama-Factory/lib/python3.10/site-packages/torchvision/io/image.py:13: UserW…...

配置MUX VLAN 的实验配置
概念和工作原理: MUX VLAN(Multiplex VLAN)是一种高级的VLAN技术,它通过在交换机上实现二层流量隔离和灵活的网络资源控制,提供了一种更为细致的网络管理方式。 概念与工作原理 基本概念: MUX VLAN通过定义主VLAN&am…...

高考相关 APP 案例分享
文章首发于https://qdgithub.com/article/2032 一、核心内容 (一)高考相关 APP 案例 圈友朱康分享高考相关的 APP。提到猿题库,其主要功能有练习册和猿辅导,都是收费的。猿题库出题给学生练习,将易错的总结起来出练习…...
AI的出现对计算机相关类型的博客或论坛的影响
最近越来越感觉到,AI的出现对计算机相关类型的博客是一种从寄生再到蚕食的过程。 在AI没出现之前,大家遇到问题,那一般都是去百度搜索,然后就能找到大神前辈的解答思路,这些解答思路基本都是写在博客或者论坛里的&…...
[LeetCode] 784. 字母大小写全排序
题目描述: 给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串。 返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。 示例 1: 输入:s "a1b2" 输出࿱…...

大数据Azkaban(二):Azkaban简单介绍
文章目录 Azkaban简单介绍 一、Azkaban特点 二、Azkaban组成结构 三、Azkaban部署模式 1、solo-server ode(独立服务器模式) 2、two server mode(双服务器模式) 3、distributed multiple-executor mode(分布式多…...
Vue3_开启全局websocket
1、封装websocket 新建文件夹"socket.ts",路径:"/utils/socket" export default (onMessage: Function) > {let socketUrl ws://171.29.8.218:8080/ems/ws/screen //socket请求地址let socket: WebSocketlet lockReconnect f…...
PTA 社交集群
当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友。一个“社交集群”是指部分兴趣爱好相同的人的集合。你需要找出所有的社交集群。 输入格式 输入在第一行给出一个正整数 N(≤1000&…...

USB Type-C 受电端取电快充协议芯片,支持PD+QC+FCP+SCP+AFC快充协议
前言 随着科技的飞速发展,电子设备对于快速充电的需求日益增加。为了满足这一需求,市场上涌现出了众多快充技术和产品。其中,XSP08Q诱骗取电芯片以其卓越的性能和广泛的应用场景,成为了快充领域的一颗璀璨明星。本文将对XSP08Q P…...
C++ 模板专题 - 参数约束
一:概述: 除了使用SFINAE对模板参数进行约束之外,还可以使用概念(Concepts)来对模板参数进行约束,确保传入的类似满足特定条件。概念(Concepts)是C20中引入的,概念是用于…...

电商行业 | 用好企业培训工具,打造精英团队!
在竞争激烈的电商行业中,人才是企业最宝贵的资源。如何持续提升员工的专业技能和服务水平,打造一支高效、专业的金牌员工队伍,是每个电商企业面临的重要课题。企业培训工具作为提升员工能力的关键手段,正逐渐成为电商行业不可或缺…...

python进阶集锦
一、迭代器和生成器 区别 关于迭代器和生成器 迭代器与生成器的区别 迭代器(Iterator)和生成器(Generator)是Python中处理序列数据的两种不同概念。迭代器是遵循迭代协议的对象,而生成器是一种特殊类型的迭代器&am…...
8.C++小练习
C小练习 1.练习 1.练习 计算器—加减乘除 函数调用 //简单的计算器 #include <iostream>using namespace std;//封装函数 int add(int a,int b){return a b; }int jian(int a, int b){return a - b; }int cheng(int a,int b){return a * b; }double chu(int a,int b){r…...
实现YOLO V3数据加载器:从文件系统读取图像与标签
引言 在深度学习项目中,数据准备是非常重要的一环。特别是在物体检测任务中,数据的组织和预处理直接影响到模型的训练效果。YOLO V3(You Only Look Once Version 3)作为一种高效的实时物体检测框架,其数据加载器的设计…...
安装pygod
了解pygod。 It is recommended to use pip for installation. Please make sure the latest version is installed, as PyGOD is updated frequently: pip install pygod # normal install pip install --upgrade pygod # or update if needed如果pip不是最新的&…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...

Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...