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 的核心数据结构之一,既是日常开发的利器,也是面试中必考的重点。

相关推荐
王志来137944730085 分钟前
聚焦五大核心场景:工控服务器机箱平台的垂直深耕之路
运维·服务器·python
zmzb010312 分钟前
Python课后习题训练记录Day193
开发语言·python
卷无止境13 分钟前
LiteLLM 全面解析开源AI网关如何统一管理百余种大模型
后端·python
我的xiaodoujiao34 分钟前
使用PyMySQL模块技术操作MySQL数据库
数据库·python·测试工具·mysql
卷无止境1 小时前
终端里的AI辅助,一场正在发生的编程效率变革
后端·python
苏灿烤鱼1 小时前
上下文写成文件系统,为什么向量还能静默丢?
python·github·agent
SamChan902 小时前
对比 4 种主流 PDF 文档解析方案:PyMuPDF vs pdfplumber vs Apache PDFBox vs 大模型 OCR
python·ai·pdf·ocr·apache·机器翻译
程序员爱钓鱼2 小时前
Rust Trait Object详解:dyn Trait与动态分发
后端·面试·rust
安_10 小时前
如何构建和使用向量索引?HNSW 和 IVF 有什么区别?
python·ai
counting money11 小时前
Java IO流详解:从InputStream到文件操作实战
java·开发语言·python