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

Python字典详解:从入门到实践

Python字典详解:从入门到实践

字典(Dictionary)是Python中最重要且最常用的数据结构之一。本文将深入讲解字典的特性、操作方法和实际应用案例。

1. 字典简介

字典是可变的无序的键值对集合,使用{}创建。每个元素由key: value组成,具有以下特点:

  • 键(key)必须唯一且不可变(字符串、数字、元组)
  • 值(value)可以是任意类型
  • 查找速度快(基于哈希表实现)
# 创建字典
student = {"name": "Alice","age": 20,"courses": ["Math", "Physics"]
}

2. 基本操作

2.1 访问元素

print(student["name"])  # Alice
print(student.get("age"))  # 20(推荐方式,避免KeyError)

2.2 添加/修改元素

student["email"] = "alice@example.com"  # 添加新键值对
student["age"] = 21  # 修改已有值

2.3 删除元素

del student["courses"]  # 删除指定键
age = student.pop("age")  # 删除并返回值

3. 常用方法

3.1 遍历字典

# 遍历键
for key in student.keys():print(key)# 遍历键值对
for key, value in student.items():print(f"{key}: {value}")

3.2 合并字典

grades1 = {"Math": 90, "English": 85}
grades2 = {"Physics": 88, "Chemistry": 92}
grades1.update(grades2)

3.3 其他实用方法

# 获取所有键
keys = list(student.keys())# 设置默认值
scores = student.setdefault("scores", {})# 清空字典
student.clear()

4. 高级应用

4.1 字典推导式

squares = {x: x**2 for x in range(1, 6)}
# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

4.2 嵌套字典

employees = {1001: {"name": "John","department": "IT","projects": ["A", "B"]},1002: {"name": "Emma","department": "HR"}
}

5. 综合案例:学生管理系统

def student_management():students = {}while True:print("\n1. 添加学生\n2. 查询学生\n3. 删除学生\n4. 退出")choice = input("请选择操作:")if choice == "1":student_id = input("学号:")name = input("姓名:")students[student_id] = {"name": name}elif choice == "2":student_id = input("输入查询学号:")print(students.get(student_id, "学生不存在"))elif choice == "3":student_id = input("输入删除学号:")if student_id in students:del students[student_id]print("删除成功")else:print("学生不存在")elif choice == "4":breakstudent_management()

总结

字典作为Python的核心数据结构,具有以下优势:

  • 快速查找(O(1)时间复杂度)
  • 灵活的数据组织方式
  • 支持复杂数据嵌套
  • 丰富的内置方法

掌握字典的使用可以显著提升编程效率,建议通过实际项目多加练习!

http://www.lryc.cn/news/530232.html

相关文章:

  • 91,【7】 攻防世界 web fileclude
  • 41【文件名的编码规则】
  • 蓝桥杯备赛经验帖
  • 一文大白话讲清楚webpack基本使用——17——Tree Shaking
  • 【C++ 区间位运算】3209. 子数组按位与值为 K 的数目|2050
  • 8 比例缩放(scale.rs)
  • 二分 机器人的跳跃问题
  • Hive:复杂数据类型之Map函数
  • R 字符串:深入理解与高效应用
  • 设计模式Python版 桥接模式
  • 记5(一元逻辑回归+线性分类器+多元逻辑回归
  • 【Python】第七弹---Python基础进阶:深入字典操作与文件处理技巧
  • Nginx 运维开发高频面试题详解
  • 下载OpenJDK
  • Web3.js详解
  • 学习串行通信
  • 【leetcode强化练习·二叉树】同时运用两种思维解题
  • Rank-analysis-1.2——一款基于LCU API的排位分析工具,大四学生独立开发
  • 什么是门控循环单元?
  • Google Chrome-便携增强版[解压即用]
  • 智慧园区综合管理系统如何实现多个维度的高效管理与安全风险控制
  • 【PyTorch】7.自动微分模块:开启神经网络 “进化之门” 的魔法钥匙
  • 从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(协议层封装)
  • Mac M1 源码安装FFmpeg,开启enable-gpl 和 lib x264
  • 【Quest开发】手柄单手抓握和双手抓握物体切换
  • DB-GPT试用
  • ​《Ollama Python 库​》
  • Java的Integer缓存池
  • Ubuntu16.04编译安装Cartographer 1.0版本
  • Qt调用FFmpeg库实时播放UDP组播视频流