Python-列表与序列
一、什么是序列序列Sequence 有序、可按索引访问的数据类型。Python 中常见的序列类型可变语法字符串 str❌hello列表 list✅[1, 2, 3]元组 tuple❌(1, 2, 3)序列通用操作str、list、tuple 都支持s Python lst [1, 2, 3, 4, 5] # 索引 print(s[0], lst[0]) # P 1 # 切片 print(s[0:3], lst[1:4]) # Pyt [2, 3, 4] # 拼接 print([1, 2] [3, 4]) # [1, 2, 3, 4] # 重复 * print([0] * 5) # [0, 0, 0, 0, 0] # 成员检测 in print(2 in lst) # True # 长度 len print(len(lst)) # 5 # 最大最小 print(max(lst), min(lst))二、列表 List 详解2.1 列表的特点可变创建后可以修改、添加、删除元素有序每个元素有固定位置索引元素类型可以不同[1, hello, 3.14, True]2.2 创建列表lst1 [1, 2, 3] lst2 list(abc) # [a, b, c] lst3 list(range(5)) # [0, 1, 2, 3, 4] lst4 [] # 空列表 lst5 [1, hello, 3.14] # 混合类型 nested [[1, 2], [3, 4]] # 嵌套列表2.3 访问元素fruits [apple, banana, cherry, date] print(fruits[0]) # apple第一个 print(fruits[-1]) # date最后一个 print(fruits[1:3]) # [banana, cherry]切片2.4 修改元素fruits [apple, banana, cherry] # 按索引修改 fruits[0] apricot # 切片赋值可改变长度 fruits[1:2] [blueberry, blackberry] print(fruits) # [apricot, blueberry, blackberry, cherry]2.5 添加元素fruits [apple, banana] fruits.append(cherry) # 末尾添加单个 fruits.insert(1, blueberry) # 指定位置插入 fruits.extend([date, elderberry]) # 末尾批量添加 print(fruits)方法作用append(x)末尾添加一个元素即使 x 是列表也作为整体添加insert(i, x)在索引 i 处插入 xextend(iterable)末尾逐个添加 iterable 中的元素a [1, 2] a.append([3, 4]) # [1, 2, [3, 4]] b [1, 2] b.extend([3, 4]) # [1, 2, 3, 4]2.6 删除元素fruits [apple, banana, cherry, banana] fruits.remove(banana) # 删除第一个匹配的值 del fruits[0] # 按索引删除 popped fruits.pop() # 弹出末尾元素 popped fruits.pop(0) # 弹出指定位置 fruits.clear() # 清空列表2.7 查找与统计nums [3, 1, 4, 1, 5, 9, 2, 6] print(nums.index(4)) # 2第一次出现的索引 print(nums.count(1)) # 2出现次数 print(5 in nums) # True2.8 排序与反转nums [3, 1, 4, 1, 5] nums.sort() # 原地升序nums 本身被改变 nums.sort(reverseTrue) # 原地降序 original [3, 1, 4] sorted_list sorted(original) # 返回新列表original 不变 nums.reverse() # 原地反转sort() vs sorted()sort()sorted()调用方式列表方法lst.sort()内置函数sorted(lst)是否改变原列表✅ 改变❌ 返回新列表2.9 遍历列表fruits [apple, banana, cherry] # 方式1直接遍历 for fruit in fruits: print(fruit) # 方式2带索引 for i, fruit in enumerate(fruits): print(i, fruit) # 0 apple # 1 banana # 2 cherry2.10 列表推导式重点简洁地创建列表# 基本形式 squares [x ** 2 for x in range(10)] # 带条件 evens [x for x in range(20) if x % 2 0] # 多重循环 matrix [[i * j for j in range(1, 4)] for i in range(1, 4)] # 从现有列表转换 words [hello, world, python] upper_words [w.upper() for w in words] lengths [len(w) for w in words]2.11 zip() 函数把多个序列拉链合并names [张三, 李四, 王五] scores [85, 92, 78] for name, score in zip(names, scores): print(f{name}: {score}) pairs list(zip(names, scores)) # [(张三, 85), (李四, 92), (王五, 78)]三、列表 vs 字符串特性strlist可变性不可变可变元素类型只能是字符任意类型拼接重复**四、重点易错点append vs extendappend 添加整个对象extend 逐个添加remove 找不到会 ValueError切片赋值可改变列表长度列表是引用类型b a两个变量指向同一列表a [1, 2, 3] b a b.append(4) print(a) # [1, 2, 3, 4] a 也变了五、练习题基础题1.创建 120 的列表用切片取出所有偶数。2.列表[3, 1, 4, 1, 5, 9, 2, 6]去重并升序排列。3.用列表推导式生成 1100 中能被 3 整除的数。4.有两个列表names[张三,李四]和scores[85,92]用 zip 合并输出。5.实现列表扁平化[[1,2],[3,4],[5]]→[1,2,3,4,5]。进阶题6.找出列表第二大元素不允许 sort 整个列表。7.旋转列表将[1,2,3,4,5]左旋转 2 位得[3,4,5,1,2]。参考答案点击展开参考答案# 1. nums list(range(1, 21)) evens nums[1::2] # 或 [x for x in nums if x % 2 0] # 2. lst [3, 1, 4, 1, 5, 9, 2, 6] result sorted(set(lst)) # 3. div3 [x for x in range(1, 101) if x % 3 0] # 4. for name, score in zip(names, scores): print(f{name}: {score}) # 5. nested [[1, 2], [3, 4], [5]] flat [item for sub in nested for item in (sub if isinstance(sub, list) else [sub])] # 6. def second_max(lst): m1 m2 float(-inf) for x in lst: if x m1: m2, m1 m1, x elif x m2: m2 x return m2 # 7. lst [1, 2, 3, 4, 5] k 2 rotated lst[k:] lst[:k]

相关新闻

UE5 Niagara粒子系统:GPU模拟、数据接口与性能优化实战

UE5 Niagara粒子系统:GPU模拟、数据接口与性能优化实战

1. Niagara 粒子系统的核心架构与设计思路Niagara 是 UE5 里负责粒子特效和视觉模拟的核心模块,它跟老一代的 Cascade 完全不是一个量级的东西。Cascade 本质上是一个固定管线的粒子编辑器,你只能在预设的模块里调参数;Niagara 则把整个系统拆…

2026/9/25 13:24:48 阅读更多 →
校园网高并发稳定接入方案:校园网络高并发承载全光网与开学季校园网高并发网络保障

校园网高并发稳定接入方案:校园网络高并发承载全光网与开学季校园网高并发网络保障

结论:开学季、选课高峰的校园网高并发,靠堆带宽难以为继;采用P2MP全光网可平滑扩展、低故障承载,光纤寿命大于25年、故障率降至0.5%以下,让高密接入始终稳定。一、开学季与选课高峰的并发压力从哪来校园网的高并发并非…

2026/9/25 13:24:48 阅读更多 →
智慧校园双端系统开发:客户端与管理端的数据链路全攻略

智慧校园双端系统开发:客户端与管理端的数据链路全攻略

简介:一份基于Java实现的智慧校园Android客户端与管理系统源码项目,面向高校师生、Java/Android方向在校学生及毕业设计者。项目覆盖校园资讯浏览、点赞评论与分享,支持个人任务提醒、进度管理,以及团队任务安排、申请与资讯发布等…

2026/9/25 13:23:47 阅读更多 →

最新新闻

flexible.js 配 TaoToken:flex 屏幕适配方案与 config.toml 骨架

flexible.js 配 TaoToken:flex 屏幕适配方案与 config.toml 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 14:03:21 阅读更多 →
昇腾Atlas 300V 24G部署YOLO实战:AI推理加速卡全流程指南

昇腾Atlas 300V 24G部署YOLO实战:AI推理加速卡全流程指南

atlas 300v 24g 是运算加速卡吗?第一次接触华为昇腾Atlas系列的朋友,十个里有八个会问这句话。原因很朴素:它长得像显卡,插在PCIe槽里,有24GB显存,名字里还带个V。但你要真拿它当显卡用,第一步就…

2026/9/25 14:03:21 阅读更多 →
Node.js 测试实战:用 Jest 为 test 代码配 TaoToken 统一 Key 通道

Node.js 测试实战:用 Jest 为 test 代码配 TaoToken 统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 14:03:21 阅读更多 →
AdminJS flat.get 完全指南:从扁平化 params 中安全提取嵌套属性

AdminJS flat.get 完全指南:从扁平化 params 中安全提取嵌套属性

后端低代码 【免费下载链接】adminjs AdminJS is an admin panel for apps written in node.js 项目地址: https://gitcode.com/gh_mirrors/ad/adminjs 点击查看 免费下载 本文聚焦 AdminJS 数据模型的核心机制——扁平化(flatten)存储&…

2026/9/25 14:03:21 阅读更多 →
Rac1活性检测实操指南:GST-PAK1-PBD Pulldown实验技巧

Rac1活性检测实操指南:GST-PAK1-PBD Pulldown实验技巧

做细胞信号转导研究的同行,对 Rho 家族小 GTPase 应该都不陌生。Rac1 是这里面曝光率最高的成员之一,参与细胞骨架重排、片状伪足形成、迁移、增殖和存活等一大串关键过程。Rac1 一旦持续激活,跟肿瘤侵袭转移、炎症反应、心血管重构都有关系&…

2026/9/25 14:03:21 阅读更多 →
AI时代开发者进化论:用TaoToken统一Key打通Claude Code与Agent工作流,像CEO一样指挥“一人军队”

AI时代开发者进化论:用TaoToken统一Key打通Claude Code与Agent工作流,像CEO一样指挥“一人军队”

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 14:02:21 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →