新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python-列表与序列

发布时间:2026/11/12 15:24:20来源:尧图网络
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

相关资讯

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

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/11 13:52:51

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/10 19:42:40

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/12 9:50:02

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/12 9:25:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/11 15:37:39

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/10 17:14:10

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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