Python-元组、字典与集合
今天学另外三种容器元组不可变列表、字典键值对、集合不重复。一、元组 Tuple1.1 特点有序、不可变创建后不能增删改元素用圆括号()表示可以作为字典的 key列表不行1.2 创建与访问t1 (1, 2, 3) t2 1, 2, 3 # 括号可省略 t3 tuple([1, 2, 3]) # ⚠️ 单元素元组必须加逗号 t4 (42,) # 元组 t5 (42) # 这是 int 42不是元组 print(t1[0]) # 1 print(t1[-1]) # 3 print(t1[1:3]) # (2, 3) print(len(t1)) # 31.3 不可变性t (1, 2, 3) # t[0] 10 # TypeError! # 但如果元素是可变对象如列表列表内容可以变 t2 (1, [2, 3]) t2[1].append(4) # 合法t2 变为 (1, [2, 3, 4])1.4 元组解包point (10, 20) x, y point # 交换变量经典用法 a, b 1, 2 a, b b, a # 带 * 的解包 first, *rest (1, 2, 3, 4, 5) print(first) # 1 print(rest) # [2, 3, 4, 5]1.5 函数返回多个值def get_user(): return 张三, 20, 北京 # 实际返回元组 name, age, city get_user()二、字典 Dictionary2.1 特点键值对key-value存储键不可变且唯一str、int、tuple 等Python 3.7保持插入顺序可变类比字典像通讯录——通过姓名key查找电话value。2.2 创建d1 {name: 张三, age: 20, city: 北京} d2 dict(name李四, age22) d3 dict([(a, 1), (b, 2)]) d4 {} # 空字典2.3 增删改查person {name: 张三, age: 20} # 查 print(person[name]) # 键不存在 → KeyError print(person.get(phone, 无)) # 安全访问默认值 # 增 / 改同一个操作 person[phone] 13800138000 # 新增 person[age] 21 # 修改 # 删 del person[phone] value person.pop(age) # 删除并返回值 person.clear()2.4 常用方法d {a: 1, b: 2, c: 3} print(d.keys()) # dict_keys print(d.values()) # dict_values print(d.items()) # dict_items print(len(d)) # 3 # 遍历 for key in d: print(key, d[key]) for key, value in d.items(): print(f{key} - {value})2.5 字典推导式squares {x: x**2 for x in range(6)} # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}2.6 合并字典d1 {a: 1, b: 2} d2 {b: 3, c: 4} merged d1 | d2 # {a: 1, b: 3, c: 4}三、集合 Set3.1 特点无序、不重复、可变基于哈希表成员检测极快用{}表示但{}是空字典空集合用set()3.2 创建s1 {1, 2, 3} s2 set([1, 2, 2, 3]) # {1, 2, 3} 自动去重 s3 set(hello) # {h, e, l, o} s4 set() # 空集合3.3 增删s {1, 2, 3} s.add(4) s.update([5, 6]) s.remove(1) # 不存在报 KeyError s.discard(10) # 不存在不报错 s.pop() # 随机弹出一个 s.clear()3.4 集合运算a {1, 2, 3, 4} b {3, 4, 5, 6} print(a | b) # 并集 {1,2,3,4,5,6} print(a b) # 交集 {3, 4} print(a - b) # 差集 {1, 2} print(a ^ b) # 对称差集 {1, 2, 5, 6}3.5 应用场景去重list(set(lst))成员检测比列表快数学集合运算四、五大容器总结类型有序可变重复语法典型用途str✅❌✅abc文本list✅✅✅[1,2]动态数据tuple✅❌✅(1,2)固定数据、函数返回dict✅✅key唯一{k:v}映射关系set❌✅❌{1,2}去重、集合运算五、练习题基础题1.创建元组(1,2,3,4,5)取第一个、最后一个、中间三个。2.创建学生字典完成增删改查。3.统计hello world hello python每个单词出现次数用字典。4.列表[1,2,2,3,3,3,4]用 set 去重。5.a{1,2,3,4}和b{3,4,5,6}求交集、并集、差集。进阶题6.合并两个字典键冲突时保留第二个的值。7.找出两个列表的共同元素用 set。参考答案点击展开参考答案# 1. t (1, 2, 3, 4, 5) print(t[0], t[-1], t[1:4]) # 3. 词频 text hello world hello python count {} for word in text.split(): count[word] count.get(word, 0) 1 # 4. lst [1, 2, 2, 3, 3, 3, 4] unique list(set(lst)) # 6. d1 {a: 1, b: 2} d2 {b: 3, c: 4} merged d1 | d2 # 7. a [1, 2, 3, 4] b [3, 4, 5, 6] common list(set(a) set(b))

相关新闻

Godot 4七日实战:从零构建回合制RPG核心系统与架构设计

Godot 4七日实战:从零构建回合制RPG核心系统与架构设计

1. 项目概述:为什么选择Godot 4做回合制RPG?如果你一直想做一个属于自己的回合制角色扮演游戏,但被Unity的复杂管线、Unreal的庞大体积或者纯粹是编程的入门门槛给劝退了,那么Godot 4可能就是为你量身定制的答案。我花了将近一周时…

2026/7/19 5:45:21 阅读更多 →
Java开发必备的12个DOS命令详解与实战应用

Java开发必备的12个DOS命令详解与实战应用

1. DOS命令在Java开发中的核心价值作为一名从Dos时代走过来的Java开发者,我深刻体会到命令行操作在现代开发中的不可替代性。即使现在IDE功能强大,但掌握基础Dos命令仍然是Java程序员的必修课。特别是在环境配置、文件操作和进程管理场景下,命…

2026/7/19 5:45:21 阅读更多 →
微表面模型与镜面反射BRDF:从理论到Shader实现

微表面模型与镜面反射BRDF:从理论到Shader实现

1. 项目概述:为什么微表面模型是PBR的基石? 如果你接触过现代游戏、影视特效或者实时渲染引擎,那么“PBR”这个词对你来说一定不陌生。PBR,即基于物理的渲染,它早已不是前沿实验室里的概念,而是成为了工业界…

2026/7/19 5:45:21 阅读更多 →

最新新闻

国民级 AI 应用,争的不是下载量

国民级 AI 应用,争的不是下载量

当越来越多 AI 产品接入聊天、搜索、购物、办公和生活服务,一个问题开始变得具体:谁会成为下一代用户的"默认入口"?这不是一场单纯的模型能力竞赛,也不只是下载量和日活的排名赛。真正难的部分,是让用户在需…

2026/7/19 8:47:32 阅读更多 →
Flutter模块打包为aar的混合开发实践指南

Flutter模块打包为aar的混合开发实践指南

1. 为什么需要将Flutter模块打包为aar 在混合开发场景中,将Flutter模块打包为aar(Android Archive)文件是业界常见的集成方案。这种做法的核心价值在于: 解耦开发流程 :原生团队和Flutter团队可以并行工作&#xff0…

2026/7/19 8:47:32 阅读更多 →
2026年AI写作论文工具推荐榜:从选题到查重一站式解决

2026年AI写作论文工具推荐榜:从选题到查重一站式解决

写论文这件事,2026年的难点已经不是"写不动",而是环节太多、工具太杂:选题用一个网站,大纲用一个文档,初稿用一个AI,降重再找一家平台,查重又得回学校指定系统。文件来回导&#xff0…

2026/7/19 8:47:32 阅读更多 →
串口模块测试

串口模块测试

先看哪个板子是发送端 看接的是哪个串口(看板子接线) 发送端 neardiLPA3568:~$ ls /dev/ttyS* /dev/ttyS1 /dev/ttyS7 /dev/ttyS9 neardiLPA3568:~$ sudo -s rootLPA3568:/home/neardi# echo dsdsd > /dev/ttyS7 rootLPA3568:/home/neardi#接收端 r…

2026/7/19 8:47:32 阅读更多 →
AVR单片机矩阵键盘原理与优化实践

AVR单片机矩阵键盘原理与优化实践

1. 矩阵键盘基础原理与硬件连接矩阵键盘是一种通过行列交叉扫描来检测按键状态的输入设备,相比独立按键能大幅节省I/O资源。4x4矩阵键盘仅需8个引脚即可实现16个按键的检测,这种设计在嵌入式系统中非常实用。1.1 矩阵键盘的电路结构典型的4x4矩阵键盘内部…

2026/7/19 8:47:32 阅读更多 →
深入解析MCAN模块:内部回环、时间戳、ECC与调试实践

深入解析MCAN模块:内部回环、时间戳、ECC与调试实践

1. MCAN模块核心功能深度解析在嵌入式系统,尤其是汽车电子和工业控制领域,控制器局域网(CAN)总线是连接各个电子控制单元(ECU)的神经系统。它的可靠性直接决定了整个系统的稳定与安全。传统的CAN控制器已经…

2026/7/19 8:46:32 阅读更多 →

日新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

月新闻