Python 字典速查:键值对操作与高频函数

在 Python 中,字典(dict) 是最常用的数据结构之一。它以 键值对(key-value) 的形式存储数据,查找速度非常快,是面试高频考点之一。本文将带你快速掌握字典的常见操作与高频函数。

一、创建字典

使用大括号

person = {"name": "Tom", "age": 20, "city": "Beijing"}

使用 dict() 构造函数

info = dict(name="Alice", age=25)

创建空字典

empty_dict = {}

二、访问字典

  1. 通过键访问

person = {"name": "Tom", "age": 20}

print(person"name") # Tom

如果访问不存在的键,会报 KeyError。

  1. 使用 get() 方法

print(person.get("name")) # Tom

print(person.get("gender")) # None

print(person.get("gender", "男")) # 男

优势:get() 可以设置默认值,避免报错。

三、增删改操作

  1. 新增键值对

person"gender" = "男"

print(person) # {"name": "Tom", "age": 20, "gender": "男"}

  1. 修改值

person"age" = 30

print(person) # {"name": "Tom", "age": 30, "gender": "男"}

  1. 删除键值对

使用 pop()

val = person.pop("age")

print(val) # 30

print(person) # {"name": "Tom", "gender": "男"}

使用 del

del person"gender"

print(person) # {"name": "Tom"}

四、字典的遍历

person = {"name": "Tom", "age": 20}

  1. 遍历键

for key in person.keys():

print(key)

  1. 遍历值

for value in person.values():

print(value)

  1. 遍历键值对

for k, v in person.items():

print(k, v)

五、高频函数与方法

  1. update() ------ 批量更新

person = {"name": "Tom", "age": 20}

person.update({"age": 25, "city": "Beijing"})

print(person) # {"name": "Tom", "age": 25, "city": "Beijing"}

  1. popitem() ------ 删除最后一个键值对

info = {"a": 1, "b": 2}

print(info.popitem()) # ('b', 2)

print(info) # {'a': 1}

  1. setdefault() ------ 获取键,如果不存在则设置默认值

person = {"name": "Tom"}

print(person.setdefault("age", 20)) # 20

print(person) # {"name": "Tom", "age": 20}

六、字典推导式

squares = {x: x**2 for x in range(5)}

print(squares) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

结合条件语句:

even_squares = {x: x**2 for x in range(10) if x % 2 == 0}

print(even_squares) # {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

七、面试常考陷阱

  1. 字典的键必须是不可变对象

  2. 正确

d = {1: "int", (1, 2): "tuple"}

  1. 错误:列表是可变对象,不能作为字典键

d = {1, 2: "list"} # ❌ TypeError

  1. 字典的查找速度

字典底层采用 哈希表 实现,查找键的时间复杂度接近 O(1)。这是为什么字典比列表查找更快的原因。

● 八、总结

创建与访问:掌握 \[\] 与 get() 的区别。

增删改查:熟练使用 pop、update、setdefault 等方法。

遍历与推导式:提高代码简洁性。

面试考点:理解键必须是不可变对象,掌握哈希表原理。

👉 字典是 Python 的核心数据结构之一,既是日常开发的利器,也是面试中必考的重点。

相关推荐
必须得开心呀几秒前
python编写带界面的软件,需要安装哪些插件
开发语言·python
Wx-bishekaifayuan8 分钟前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
人工智能·spring boot·后端·python·课程设计·express·旅游
青少儿编程课堂37 分钟前
迪杰斯特拉(Dijkstra)算法:单源最短路与赛场路线规划
c++·python·算法·bfs·信息学竞赛
计算机编程指导师1 小时前
【计算机毕设推荐】基于Hadoop+Spark的公共交通运营数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·数据分析·spark·交通
Wx-bishekaifayuan1 小时前
springboot汉中旅游服务平台41442-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
WeiXin_DZbishe1 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
泡茶喝茶写代码1 小时前
A股量化数据工程:从 REST 接口到策略信号(第 18 篇):放量缩量异动扫描
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
考研保研资料分享1 小时前
新闻传播保研经验:中传预推免面试、广告学代表作与实习准备(2025)
面试·职场和发展
WeiXin_DZbishe1 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计