当前位置: 首页 > news >正文

[Python 基础课程]字典

字典

想象一下你正在查字典,你需要通过一个词语(键)来找到它的解释(值)。Python 的字典也是类似的概念。它是一种无序的、可变的集合,用于存储键-值(key-value)对。

键 (Key): 字典中的每个元素都有一个唯一的标识符,我们称之为键。键必须是不可变的数据类型,例如字符串、数字或元组

值 (Value): 与每个键关联的数据称为值。值可以是任何 Python 数据类型,并且值的类型可以是不同的类型

字典使用花括号 {} 来定义,每个键-值对之间用逗号 , 分隔,键和值之间用冒号 : 连接。

让我们看一些字典的例子:

# 一个存储学生信息的字典
student = {'name': 'Alice', 'age': 20, 'major': 'Computer Science'}
# {'name': 'Alice', 'age': 20, 'major': 'Computer Science'}
print(student)
# 输出: <class 'dict'>
print(type(student))# 一个存储商品价格的字典
prices = {'apple': 1.5, 'banana': 0.75, 'orange': 1.0}
# {'apple': 1.5, 'banana': 0.75, 'orange': 1.0}
print(prices)# 键可以是数字
grades = {90: 'A', 80: 'B', 70: 'C'}
# {90: 'A', 80: 'B', 70: 'C'}
print(grades)# 值可以是列表或其他的字典,值的类型可以是不同的类型
data = {'name': 'Bob', 'courses': ['Math', 'Physics'], 'address': {'city': 'New York', 'zip': '10001'}}
# {'name': 'Bob', 'courses': ['Math', 'Physics'], 'address': {'city': 'New York', 'zip': '10001'}}
print(data)# 空字典
empty_dict = {}
# {}
print(empty_dict)

关键点:

  • 字典中的元素是无序的。这意味着当你打印一个字典时,元素的顺序可能与你定义时的顺序不同。你不应该依赖字典中元素的特定顺序
  • 键必须是唯一的。如果在同一个字典中出现重复的键,后面的键-值对会覆盖前面的,值可以是不同的类型

访问字典中的值

与列表和元组使用索引来访问元素不同,我们使用来访问字典中对应的值。

student = {'name': 'Alice', 'age': 20, 'major': 'Computer Science'}# 通过键 'name' 访问对应的值
name = student['name']
# Alice
print(name)# 通过键 'age' 访问对应的值
age = student['age']
# 20
print(age)# 如果尝试访问一个不存在的键,会引发 KeyError 错误
# error = student['grade'] # 这会报错!

为了避免 KeyError,我们可以使用 get() 方法。get() 方法在键存在时返回对应的值,如果键不存在则返回 None(或者你指定的默认值)。

student = {'name': 'Alice', 'age': 20, 'major': 'Computer Science'}grade = student.get('grade')
# None
print(grade)# 如果键不存在,返回 'N/A'
grade = student.get('grade', 'N/A')
# N/A
print(grade)name = student.get('name')
# Alice
print(name)

修改字典

字典是可变的,这意味着我们可以在创建后修改字典的内容。

添加新的键值对:

student = {'name': 'Alice', 'age': 20}
student['major'] = 'Computer Science'
# {'name': 'Alice', 'age': 20, 'major': 'Computer Science'}
print(student)

修改已有的值:

student = {'name': 'Alice', 'age': 20, 'major': 'Computer Science'}
student['age'] = 21
# {'name': 'Alice', 'age': 21, 'major': 'Computer Science'}
print(student)

删除键值对可以使用 del 关键字或者 pop() 方法:

student = {'name': 'Alice', 'age': 21, 'major': 'Computer Science'}
del student['age']
# {'name': 'Alice', 'major': 'Computer Science'}
print(student)
student = {'name': 'Alice', 'major': 'Computer Science'}
removed_major = student.pop('major')
# {'name': 'Alice'}
print(student)
# Computer Science
print(removed_major)

使用 clear() 方法可以移除字典中的所有元素:

student = {'name': 'Alice', 'major': 'Computer Science'}
student.clear()
# {}
print(student)

遍历字典

第一种是调用 keys 方法获取到所有的 key,遍历 key 拿到 key 对应的值:

my_dict = {"name": "Alice", "age": 30, "city": "New York"}# 使用 keys() 方法获取所有的键
keys = my_dict.keys()
print(f"所有的键:{keys}")# 遍历所有的键,并获取每个键对应的值
print("\n遍历键和值:")
for key in keys:value = my_dict[key]print(f"键: {key}, 值: {value}")

第二种是直接对第一种进行简写:

my_dict = {"name": "Alice", "age": 30, "city": "New York"}# 更简洁的遍历方式(直接遍历字典的键)
print("\n更简洁的遍历方式:")
for key in my_dict:value = my_dict[key]print(f"键: {key}, 值: {value}")

第三种是直接调用 items 方法同时获取到 key 和 value:

my_dict = {"name": "Alice", "age": 30, "city": "New York"}for key, value in my_dict.items():print(f"键: {key}, 值: {value}")
http://www.lryc.cn/news/587130.html

相关文章:

  • Spring AI 项目实战(十七):Spring Boot + AI + 通义千问星辰航空智能机票预订系统(附完整源码)
  • 12.3 安全内存区域划分
  • Kubernetes集群安装
  • Word中的批注显示与修订显示
  • 无需付费即可利用AI消除音频噪声和生成字幕
  • 云服务器的基础使用
  • 代码部落 20250713 CSP-J复赛 模拟赛
  • Java#为什么使用ThreadLocal传参而不是直接传参
  • 每天一个前端小知识 Day 30 - 前端文件处理与浏览器存储机制实践
  • 5.适配器模式
  • ClickHouse 分区机制详解:规则、合并与实践指南
  • LeetCode 1156.单字符重复子串的最大长度
  • 力扣 hot100 Day43
  • OSPF与BGP的联动特性
  • 【设计模式】备忘录模式(标记(Token)模式)
  • 面向对象设计模式详解
  • Flink学习笔记:整体架构
  • NO.4数据结构数组和矩阵|一维数组|二维数组|对称矩阵|三角矩阵|三对角矩阵|稀疏矩阵
  • 【Docker基础】Dockerfile指令速览:环境与元数据指令详解
  • 【保姆级图文详解】Spring AI 中的工具调用原理解析,工具开发:文件操作、联网搜索、网页抓取、资源下载、PDF生成、工具集中注册
  • leetGPU解题笔记(1)
  • 【CMake】CMake创建、安装、使用静态库和动态库
  • LeetCode|Day8|1047. 删除字符串中的所有相邻重复项|Python刷题笔记
  • java.net.InetAddress
  • 嵌入式 Linux开发环境构建之安装 SSH 软件
  • MongoDB数据基本介绍
  • 小白成长之路-LVS
  • 【VSCode+LaTeX】科研写作环境搭建
  • C语言的一些随笔
  • 面试150 填充每个节点的下一个右侧节点指针Ⅱ