新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python-列表与序列

发布时间:2026/9/25 13:24:42来源:尧图网络
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]
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

TVA具身智能运行机理(13):系统融合机制的颠覆性突破 2026/9/25 13:59:40

TVA具身智能运行机理(13):系统融合机制的颠覆性突破

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习&…

阅读更多 →
Atlas 300V 24G 部署 YOLO 全攻略:从模型转换到性能优化 2026/9/25 13:59:39

Atlas 300V 24G 部署 YOLO 全攻略:从模型转换到性能优化

最近好几个朋友都在问同一个问题:手头有一张 Atlas 300V 24G 推理卡,到底能不能跑 YOLO?它算不算一张正经的运算加速卡?说实话,这个问题我没法一句话回答,因为答案既是、也不是。说它是,是因为它…

阅读更多 →
Fallow 编辑器集成教程:如何用 VS Code、Zed 与 Neovim 实现 LSP 实时死代码诊断 2026/9/25 13:59:33

Fallow 编辑器集成教程:如何用 VS Code、Zed 与 Neovim 实现 LSP 实时死代码诊断

Fallow 编辑器集成教程:如何用 VS Code、Zed 与 Neovim 实现 LSP 实时死代码诊断 【免费下载链接】fallow Codebase intelligence for TypeScript and JavaScript. Free static analysis of code and styles: unused code, duplication, circular deps, complexity hotspots, a…

阅读更多 →
MOE通信瓶颈深度拆解:All-to-All与负载均衡优化实战 2026/9/25 13:59:33

MOE通信瓶颈深度拆解:All-to-All与负载均衡优化实战

1. 为什么大家都在聊MOE的通信瓶颈MOE(Mixture of Experts,混合专家模型)这半年热度基本没下来过。各家大厂搬出千亿万亿参数模型,几乎都能听到MOE这个词。算力硬件没有本质突破的前提下,MOE确实是用有限显存撬动更大参…

阅读更多 →
TVA具身智能运行机理(12):生成推演机制的历史性突破 2026/9/25 13:59:26

TVA具身智能运行机理(12):生成推演机制的历史性突破

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习&…

阅读更多 →
TVA具身智能运行机理(10):双系统协同的内涵与架构创新 2026/9/25 13:59:20

TVA具身智能运行机理(10):双系统协同的内涵与架构创新

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉