Python列表全面解析:从基础到高阶操作

一、为什么需要列表?

在Python中,列表是可变有序序列,用于存储多个元素的容器。相较于单一变量存储独立值,列表能更高效地管理批量数据,其特点包括:

  • 引用存储:列表元素存储的是对象的引用
  • 异构性:支持不同数据类型共存
  • 动态性:长度和内容可动态修改
a = 10  # 单一变量存储
lst = ['hello', 98, 98.3]  # 列表存储多类型数据
print(id(lst))  # 查看列表内存地址

二、列表的创建方式

  1. 字面量创建
    lst = [元素1, 元素2, ...]

  2. 构造函数创建
    lst = list(iterable)

lst1 = ['Python', 'Java']          # 直接创建
lst2 = list(('C++', 2024))         # 元组转列表
lst3 = list('Hello')               # 字符串转列表 → ['H','e','l','l','o']

三、核心特性解析

1. 索引与切片

  • 正向索引:从0开始递增
  • 逆向索引:从-1开始递减
  • 切片操作list[start:stop:step](左闭右开)
lst = [10, 20, 30, 40, 50]
print(lst[1])     # 20(正向索引)
print(lst[-2])    # 40(逆向索引)
print(lst[1:4])   # [20,30,40](基础切片)
print(lst[::-1])  # [50,40,30,20,10](逆序切片)

2. 元素的增删改查

添加元素
方法描述时间复杂度
append(x)末尾追加元素O(1)
extend(iter)扩展多个元素O(k)
insert(i,x)指定位置插入O(n)
lst = [1, 2]
lst.append([3,4])     # [1,2,[3,4]]
lst.extend(range(3))  # [1,2,0,1,2]
lst.insert(1, 'new')  # [1,'new',2,0,1,2]
删除元素
方法描述注意点
remove(x)删除首个匹配值元素不存在时报错
pop([i])删除指定索引元素默认删除末尾元素
clear()清空列表保留空列表对象
nums = [10, 20, 30, 20]
nums.remove(20)      # [10,30,20]
nums.pop(1)          # [10,20]
nums[1:] = []        # [10](切片删除)
del nums[0]          # []
修改与查询
lst = ['A', 'B', 'C']
lst[1] = 'X'              # 直接赋值修改
print(lst.index('C'))     # 2(查询索引)
print('B' in lst)         # False(存在性检查)

3. 排序与反转

  • 原地排序sort() 方法直接修改原列表
  • 生成新列表sorted() 函数返回新对象
  • 逆序操作reverse() 或 [::-1] 切片
data = [3, 1, 4, 2]
data.sort(reverse=True)   # [4,3,2,1]
new_data = sorted(data)   # [1,2,3,4](原列表不变)
data.reverse()            # [1,2,3,4] → [4,3,2,1]

四、高阶操作技巧

1. 列表生成式

快速生成列表的简洁语法:

squares = [x**2 for x in range(5)]          # [0,1,4,9,16]
even_nums = [n for n in nums if n%2 == 0]   # 过滤偶数

2. 嵌套列表处理

处理多维数据结构:

matrix = [[1, 2, 3],[4, 5, 6],[7, 8, 9]
]
print(matrix[1][2])       # 6(访问第二行第三列)

3. 列表去重方法

  • 集合转换法list(set(lst))(无序)
  • 顺序保留法:遍历判断添加
# 保留原始顺序
def deduplicate(lst):seen = []for item in lst:if item not in seen:seen.append(item)return seen

五、性能与应用场景

  1. 时间复杂度分析

    • 索引/赋值:O(1)
    • 插入/删除:平均O(n)
    • 搜索元素:O(n)
  2. 适用场景

    • 动态数据集合
    • 需要频繁修改的序列
    • 非数值型数据存储(如字符串、对象混合存储)

六、总结

Python列表作为核心数据结构,具备以下核心优势:

  • 灵活的元素管理:支持增删改查全套操作
  • 丰富的内置方法:提供排序、反转等便捷功能
  • 高效的数据处理:结合生成式实现快速操作

掌握列表的底层原理和高级用法,将显著提升Python编程效率。建议在实际开发中根据需求选择合适的方法,平衡功能实现与性能优化。


最新技术动态请关注作者:Python×CATIA工业智造​​
版权声明:转载请保留原文链接及作者信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring知识点梳理

一、Spring(Spring Framework) 1、IOC(控制反转) 1)什么是IOC控制反转? 为了解藕,有反转就有“正转”,“正转”就是程序员手动 new对象;“反转”就是将对象的创建、对…

SpringBoot启动后自动执行方法的各种方式-笔记

1. SpringBoot启动后自动执行方法的各种方式 1.1 PostConstruct 注解 作用:在依赖注入完成后执行初始化方法。 适用场景:需要在Bean初始化时执行某些操作(如配置、预加载数据)。 注意:该方法在Bean初始化阶段执行&…

基础知识-java流steam

Java Stream 流详解 一、Stream 概述 #mermaid-svg-ZXmu5UZgAcGGq8EN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ZXmu5UZgAcGGq8EN .error-icon{fill:#552222;}#mermaid-svg-ZXmu5UZgAcGGq8EN .error-text{fil…

8.Android(通过Manifest配置文件传递数据(meta-data))

配置文件 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"><applicationandroid:allowBackup"tr…

java 解析入参里的cron表达式,修改周时间

文章目录 前言一、java 解析入参里的cron表达式,修改周时间二、使用步骤1.示例 总结 前言 一、java 解析入参里的cron表达式,修改周时间 示例&#xff1a; 第一种: 0 0 0,16 ? * 0,1 第2种 0 0 0,16 ? * 1-7 第3种 0 0 0,16 ? * ? 第4种 0 0 0,16 ? * * 二、使用步骤 1…

DTO,VO,PO,Entity

1. DTO (Data Transfer Object) 定义 DTO 是数据传输对象&#xff0c;用于在不同系统或层之间传输数据。 目的 简化数据传输&#xff0c;降低耦合&#xff0c;通常只包含需要传输的字段&#xff0c;避免暴露内部实现细节。 使用场景 Controller 和 Service 或 远程调用 之…

从零搭建高可用分布式限流组件:设计模式与Redis令牌桶实践

一、需求背景与设计目标 在分布式系统中&#xff0c;面对突发流量时需要一种精准可控的流量控制手段。我们的组件需要具备&#xff1a; 多维度限流&#xff08;用户/IP/服务节点/自定义表达式&#xff09;分布式环境下精准控制开箱即用的Spring Boot Starter集成高扩展性的架…

Node.js 事件循环和线程池任务完整指南​

在 Node.js 的运行体系中&#xff0c;事件循环和线程池是保障其高效异步处理能力的核心组件。事件循环负责调度各类异步任务的执行顺序&#xff0c;而线程池则承担着处理 CPU 密集型及部分特定 I/O 任务的工作。接下来&#xff0c;我们将结合图示&#xff0c;详细剖析两者的工作…

echarts自定义图表--仪表盘

基于仪表盘类型的自定义表盘 上图为3层结构组成 正常一个仪表盘配置要在外圈和内圈之间制造一条缝隙间隔 再创建一个仪表盘配置 背景透明 进度条拉满 进度条颜色和数据的背景相同开始处的线 又一个仪表盘配置 数值固定一个比较小的值 <!DOCTYPE html> <html><h…

【数据结构】图论存储结构深度解析:邻接多重表如何实现无向图O(1)删边?邻接矩阵/链表/十字链对比

邻接多重表 导读一、有向图的存储结构二、邻接多重表三、存储结构四、算法评价4.1 时间复杂度4.2 空间复杂度 五、四种存储方式的总结5.1 空间复杂度5.2 找相邻边5.3 删除边或结点5.4 适用于5.5 表示方式 六、图的基本操作结语 导读 大家好&#xff0c;很高兴又和大家见面啦&a…

【Rust】所有权

目录 所有权基本概念所有权介绍栈与堆变量作用域 字符串字符串字面值&#xff08;&str&#xff09;String 类型相互转换所有权 内存结构对比注意事项和常见坑使用场景 内存与分配变量与数据交互的方式&#xff08;一&#xff09;&#xff1a;移动变量与数据交互的方式&…

4月29日日记

终于是考完解析几何了&#xff0c;今天昨天突击了一下&#xff0c;感觉确实学会了很多之前不会的东西&#xff0c;但是可能距离高分还差很多。这次考试不太理想。大部分原因是前期没学&#xff0c;吸取教训&#xff0c;早点开始复习微积分。明天还有一节微积分&#xff0c;但是…

【深度对比】Google Play与IOS 马甲包处理差异分析

在移动应用发布与推广过程中&#xff0c;马甲包&#xff08;Cloned App / Alternate Version&#xff09; 曾被广泛用于流量测试、风险隔离、多品牌运营等场景中。随着 Google Play 与 Apple App Store 审核政策不断收紧&#xff0c;开发者们越来越关注两个平台对“马甲包”的态…

MCP 架构全解析:Host、Client 与 Server 的协同机制

目录 &#x1f3d7;️ MCP 架构全解析&#xff1a;Host、Client 与 Server 的协同机制 &#x1f4cc; 引言 &#x1f9e9; 核心架构组件 1. Host&#xff08;主机&#xff09; 2. Client&#xff08;客户端&#xff09; 3. Server&#xff08;服务器&#xff09; &#…

记录一次无界微前端的简单使用

记录一次无界微前端使用 无界微前端主应用子应用nginx配置 无界微前端 https://wujie-micro.github.io/doc/ 因为使用的是vue项目主应用和次应用都是 所以用的封装的。 https://wujie-micro.github.io/doc/pack/ 主应用 安装 选择对应的版本 # vue2 框架 npm i wujie-vue2…

LLM应用于自动驾驶方向相关论文整理(大模型在自动驾驶方向的相关研究)

1、《HILM-D: Towards High-Resolution Understanding in Multimodal Large Language Models for Autonomous Driving》 2023年9月发表的大模型做自动驾驶的论文&#xff0c;来自香港科技大学和人华为诺亚实验室&#xff08;代码开源&#xff09;。 论文简介&#xff1a; 本文…

FTP-网络文件服务器

部署思路 单纯上传下载ftp系统集成间的共享 samba网络存储服务器 NFS 网络文件服务器&#xff1a;通过网络共享文件或文件夹&#xff0c;实现数据共享 NAS &#xff08; network append storage):共享的是文件夹 FTP&#xff1a;文件服务器samba&#xff1a;不同系统间的文件…

在 Ubuntu 22.04 x64 系统安装/卸载 1Panel 面板

一、 1Panel 是什么&#xff1f; 1Panel 是一款基于 Go 语言开发的现代化开源服务器管理面板&#xff08;类似宝塔面板&#xff09;&#xff0c;专注于容器化&#xff08;Docker&#xff09;和云原生环境管理&#xff0c;提供可视化界面简化服务器运维操作。 1. 1Panel主要功…

Redis | Redis集群模式技术原理介绍

关注&#xff1a;CodingTechWork Redis 集群模式概述 Redis 集群&#xff08;Cluster&#xff09;模式是 Redis 官方提供的分布式解决方案&#xff0c;旨在解决单机 Redis 在数据量和性能上的限制。它通过数据分片、高可用性和自动故障转移等特性&#xff0c;提供了水平扩展和…

Servlet小结

视频链接&#xff1a;黑马servlet视频全套视频教程&#xff0c;快速入门servlet原理servlet实战 什么是Servlet&#xff1f; 菜鸟教程&#xff1a;Java Servlet servlet&#xff1a; server applet Servlet是一个运行在Web服务器&#xff08;如Tomcat、Jetty&#xff09;或应用…