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

【python基础知识】字典

文章目录

    • 字典的基本操作(键值对操作)
      • 创建字典
      • 访问值
      • 修改和添加键值对
      • 删除键值对
      • 检查键是否存在
    • 遍历字典
      • 遍历所有键
      • 遍历所有值
      • 遍历键值对
      • 按顺序遍历字典
    • 字典嵌套(列表嵌套字典)
      • 列表嵌套字典
      • 字典嵌套字典
      • 字典嵌套列表
    • 字典常用方法速查表
    • 总结

在Python中,字典(Dictionary)是一种无序的键值对(key-value)集合,它通过哈希表实现,支持快速查找、插入和删除操作。本文将详细介绍字典的核心操作、遍历技巧以及嵌套应用。

字典的基本操作(键值对操作)

字典使用花括号 {} 表示,每个键值对用冒号 : 分隔。

创建字典

# 空字典
empty_dict = {}# 包含键值对的字典
person = {"name": "Alice","age": 30,"city": "New York"
}# 使用dict()构造函数
car = dict(make="Toyota", model="Corolla", year=2020)

访问值

# 通过键访问值
print(person["name"])  # 输出: Alice# 使用get()方法(推荐,避免KeyError)
print(person.get("age"))  # 输出: 30
print(person.get("gender", "Unknown"))  # 不存在时返回默认值

修改和添加键值对

# 修改现有值
person["age"] = 31  # 更新年龄# 添加新键值对
person["job"] = "Engineer"  # 新增job键# 使用update()方法批量添加/更新
person.update({"country": "USA", "age": 32})

删除键值对

# 使用del删除指定键
del person["city"]# 使用pop()删除并返回值
age = person.pop("age")  # 返回32,person中不再有age键# 删除所有键值对
person.clear()  # 结果: {}

检查键是否存在

if "name" in person:print("Name exists!")

遍历字典

字典支持多种遍历方式,可以遍历键、值或键值对。

遍历所有键

# 方式1:直接遍历(默认遍历键)
for key in person:print(key)# 方式2:使用keys()方法(更明确)
for key in person.keys():print(key)

遍历所有值

for value in person.values():print(value)

遍历键值对

# 方式1:使用items()方法
for key, value in person.items():print(f"{key}: {value}")# 方式2:先获取键,再通过键访问值
for key in person:print(f"{key}: {person[key]}")

按顺序遍历字典

# 按键排序后遍历
for key in sorted(person.keys()):print(f"{key}: {person[key]}")

字典嵌套(列表嵌套字典)

字典和列表可以相互嵌套,用于表示复杂数据结构。

列表嵌套字典

# 存储多个用户信息
users = [{"name": "Alice", "age": 30},{"name": "Bob", "age": 25},{"name": "Charlie", "age": 35}
]# 访问第二个用户的姓名
print(users[1]["name"])  # 输出: Bob# 添加新用户
users.append({"name": "David", "age": 28})# 遍历所有用户
for user in users:print(f"{user['name']} is {user['age']} years old.")

字典嵌套字典

# 存储学生成绩
students = {"Alice": {"math": 95, "english": 88},"Bob": {"math": 76, "english": 92},"Charlie": {"math": 89, "english": 78}
}# 访问Alice的数学成绩
print(students["Alice"]["math"])  # 输出: 95# 添加新科目成绩
students["Bob"]["science"] = 85# 计算平均成绩
for name, scores in students.items():avg = sum(scores.values()) / len(scores)print(f"{name}'s average score: {avg:.2f}")

字典嵌套列表

# 存储博客文章信息
blog = {"title": "Python Tutorial","author": "Alice","tags": ["python", "programming", "tutorial"],"comments": [{"user": "Bob", "content": "Great article!"},{"user": "Charlie", "content": "Very helpful"}]
}# 访问第一个评论的用户
print(blog["comments"][0]["user"])  # 输出: Bob# 添加新评论
blog["comments"].append({"user": "David", "content": "Thanks!"})

字典常用方法速查表

方法描述
get(key, default)返回指定键的值,如果键不存在则返回default值
keys()返回包含所有键的视图对象
values()返回包含所有值的视图对象
items()返回包含所有键值对的视图对象
update(other_dict)用另一个字典的键值对更新当前字典(存在则覆盖,不存在则添加)
pop(key[, default])删除指定键并返回其值,如果键不存在则返回default(若未指定则报错)
popitem()随机删除并返回一个键值对(Python 3.7+ 按插入顺序删除最后一个)
clear()删除字典中的所有键值对
copy()返回字典的浅拷贝
fromkeys(seq[, value])创建一个新字典,以序列seq中的元素为键,值统一为value(默认None)

总结

字典是Python中最灵活的数据结构之一,适用于存储和处理关联数据。掌握字典的核心操作、遍历技巧以及嵌套应用,能够让你更高效地处理复杂数据。建议通过实际项目练习来加深理解,比如解析JSON数据、实现缓存系统等。

相关文章:

  • C++多重继承详解与实战解析
  • 编程基础:通信
  • [SAP] 矩阵复制(Matrix Copy)
  • Linux开发追踪(IMX6ULL篇_第一部分)
  • 智语心桥:当AI遇上“星星的孩子”,科技如何点亮沟通之路?
  • 【办公类-22-05】20250601Python模拟点击鼠标上传CSDN12篇
  • 机器学习有监督学习sklearn实战二:六种算法对鸢尾花(Iris)数据集进行分类和特征可视化
  • 核心机制:TCP 断开连接(四次挥手)
  • 人工智能在智能能源管理中的创新应用与未来趋势
  • springboot中@Async做异步操作(Completable异步+ThreadPoolTaskExecutor线程池+@Async注解)
  • Leetcode 269. 火星词典
  • Python----目标检测(《SSD: Single Shot MultiBox Detector》论文和SSD的原理与网络结构)
  • Redis:安装与常用命令
  • 基于ZYNQ ARM+FPGA异构平台的声呐数据采集系统设计
  • ARM P15协处理器指令详解:架构、编程与应用实践
  • 支持向量机(SVM):解锁数据分类与回归的强大工具
  • C#语音识别:使用Whisper.net实现语音识别
  • PySide6 GUI 学习笔记——常用类及控件使用方法(标签控件QLabel)
  • 鸿蒙OS基于UniApp的区块链钱包开发实践:打造支持鸿蒙生态的Web3应用#三方框架 #Uniapp
  • LeetCode 热题 100 155. 最小栈
  • 网站怎么做分页/刷僵尸粉网站推广
  • 广西钦州有人帮做网站的公司吗/快速排名优化推广价格
  • 做3D打印样品用什么外贸网站好/在线推广企业网站的方法有哪些
  • 太原建站司点击查看/运营商大数据精准营销获客
  • 免费学做美食视频网站/高端网站制作
  • html制作静态网站模板/最新seo视频教程