news 2026/2/7 5:36:52

Python元组类型及字典类型介绍和基本用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python元组类型及字典类型介绍和基本用法

Python 中的元组(tuple)字典(dict)是两种非常核心且常用的内置数据类型。下面用清晰、结构化的方式给你介绍它们的定义、特点和最常用的基本用法(基于 Python 3.12+ 最新特性,2026 年视角无重大语法变化)。

1. 元组(tuple)

核心特点
  • 有序(有索引,从 0 开始)
  • 不可变(immutable):创建后不能增删改元素(但如果元素本身是可变对象如 list,里面的内容仍可改)
  • 允许重复元素
  • 用小括号()表示(最常见写法)
创建方式
# 常用写法t1=(1,2,3)t2=10,20,30# 括号可以省略(推荐只在简单场景省略)t3=()# 空元组t4=(88,)# 只有一个元素的元组,必须加逗号!否则会被认为是普通括号t5=tuple([1,2,3])# 从可迭代对象转换t6=tuple("hello")# ('h','e','l','l','o')t7=1,# (1,) 单元素也必须加逗号

最容易犯错的点

a=(5)# 这是 int 5,不是 tuple!b=(5,)# 这才是只有一个元素的 tuple
基本操作
t=(10,20,30,40,50,20)# 1. 取值 / 切片(和列表一样)print(t[0])# 10print(t[-1])# 50(倒数第一个)print(t[1:4])# (20, 30, 40)print(t[::2])# (10, 30, 50) 步长2# 2. 查找print(t.index(20))# 1 (返回第一个匹配的索引)print(t.count(20))# 2 (出现次数)# 3. 长度print(len(t))# 6# 4. 成员判断print(30int)# Trueprint(99notint)# True# 5. 拆包(非常常用!)a,b,c=(100,200,300)# a=100, b=200, c=300x,*y,z=(1,2,3,4,5)# x=1, y=[2,3,4], z=5 (* 收集多余元素)print(x,y,z)# 1 [2, 3, 4] 5
元组 vs 列表 对比(面试/工作中常问)
特性tuple(元组)list(列表)
是否可变不可变可变
性能更快(内存更省)稍慢
安全性更高(数据不变)可被意外修改
典型用途固定配置、函数多返回值、作为 dict 的 key需要增删改的场景
可哈希是(可做 dict key / set 元素)

2. 字典(dict)

核心特点(Python 3.7+ 之后)
  • 无序 → 有序:3.7 起插入顺序保证有序(最重要变化!)
  • 键值对(key-value)存储
  • 键必须唯一键必须可哈希(不可变类型:str、int、float、tuple、frozenset 等)
  • 值可以是任意类型
  • 大括号{}表示
创建方式
# 最常用d1={"name":"Alice","age":18,"city":"Shanghai"}# 空字典d2={}d3=dict()# 从键值对列表/元组创建d4=dict([("a",1),("b",2)])d5=dict(name="Bob",score=95,city="Beijing")# 关键字参数方式# 字典推导式(很常用)d6={i:i**2foriinrange(5)}# {0:0, 1:1, 2:4, 3:9, 4:16}
基本操作(最常用写法)
student={"name":"小明","age":20,"score":88}# 1. 取值(三种方式)print(student["name"])# 小明print(student.get("age"))# 20print(student.get("gender","未知"))# 未知(键不存在返回默认值)# 2. 新增 / 修改student["gender"]="男"# 新增student["score"]=95# 修改student.setdefault("class","一班")# 如果键不存在则添加,有则不动# 3. 删除delstudent["age"]# 删除指定键student.pop("score")# 删除并返回被删除的值student.pop("height",None)# 键不存在不报错student.clear()# 清空整个字典# 4. 判断键是否存在print("name"instudent)# True / Falseprint("height"notinstudent)# True# 5. 获取所有键/值/键值对print(student.keys())# dict_keys([...])print(student.values())# dict_values([...])print(student.items())# dict_items([('name','小明'), ...])# 6. 遍历(最常用三种方式)forkinstudent:print(k,student[k])fork,vinstudent.items():print(f"{k}{v}")# 7. 更新(合并字典)d1={"a":1,"b":2}d2={"b":99,"c":3}d1.update(d2)# d1 变成 {'a':1, 'b':99, 'c':3}
Python 3.9+ 新增好用的运算符(非常推荐)
d1={"a":1,"b":2}d2={"b":3,"c":4}# 合并(不修改原字典)d3=d1|d2# {'a':1, 'b':3, 'c':4}# 原地更新d1|=d2# d1 变成合并后的结果

总结一句话对比

  • 元组 tuple:像不可变的列表,主要用于固定、不变的数据集合、函数返回多个值、做字典的 key
  • 字典 dict:键值映射神器,查找速度极快(接近 O(1)),现代 Python 项目中使用频率最高的数据结构之一

如果你正在学 Python,建议优先熟练掌握
元组拆包 + 字典的 get()/setdefault()/items() 遍历 + 字典推导式 + | 合并运算符

有哪部分还想看更详细的示例(比如嵌套、排序、defaultdict、Counter 等进阶用法)?直接告诉我~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 14:32:14

Draw.io ECE 完整指南:电气工程绘图的终极解决方案

Draw.io ECE 完整指南:电气工程绘图的终极解决方案 【免费下载链接】Draw-io-ECE Custom-made draw.io-shapes - in the form of an importable library - for drawing circuits and conceptual drawings in draw.io. 项目地址: https://gitcode.com/gh_mirrors/d…

作者头像 李华
网站建设 2026/2/5 14:32:48

Barlow字体终极指南:为什么这款几何无衬线字体能统治设计界

Barlow字体终极指南:为什么这款几何无衬线字体能统治设计界 【免费下载链接】barlow Barlow: a straight-sided sans-serif superfamily 项目地址: https://gitcode.com/gh_mirrors/ba/barlow 还在为寻找完美字体而烦恼吗?🤔 今天我要…

作者头像 李华
网站建设 2026/2/3 7:33:31

【VSCode插件终极指南】:2026年Python程序员都在抢用的8款宝藏工具

第一章:Python开发者的VSCode环境认知升级Visual Studio Code 已成为 Python 开发者广泛采用的代码编辑器,其轻量级架构与强大的扩展生态为开发效率带来显著提升。通过合理配置,VSCode 能够提供媲美传统 IDE 的功能体验,同时保持流…

作者头像 李华
网站建设 2026/2/3 21:45:07

FSMN VAD高级参数展开:隐藏设置使用说明

FSMN VAD高级参数展开:隐藏设置使用说明 1. 欢迎使用 FSMN VAD 语音活动检测系统 你是不是也遇到过这样的问题:会议录音里语音片段被莫名其妙地截断?电话录音中的背景噪声总被误判成说话声?又或者处理大批量音频时,发…

作者头像 李华
网站建设 2026/2/3 21:11:15

BSHM镜像conda环境激活失败怎么办?

BSHM镜像conda环境激活失败怎么办? 1. 问题背景与场景说明 在使用 BSHM 人像抠图模型镜像 进行图像处理时,很多用户反馈:明明已经成功启动了镜像实例,但在执行 conda activate bshm_matting 命令时却提示“命令未找到”或“环境…

作者头像 李华
网站建设 2026/2/3 22:04:35

如何快速掌握铜钟音乐:新手必备的终极使用指南

如何快速掌握铜钟音乐:新手必备的终极使用指南 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特!(密码重置功能已回归) 项目地址: https://gitcode.com/GitHub_Trending/to/t…

作者头像 李华