掘金 人工智能 07月21日 22:21
苦练Python第26天:精通字典8大必杀技
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入讲解了Python字典的8个核心方法,包括get()的安全取值、update()的合并更新、pop()和popitem()的优雅删除、setdefault()的嵌套初始化以及keys()、values()、items()的遍历技巧,并结合单词计数器和嵌套字典初始化等实战场景,帮助读者快速掌握字典的高级用法,避免程序出错,提升编码效率,成为真正的Python字典大师。

🐍 `get(key[, default])` 方法:通过提供一个默认值,可以在键不存在时避免程序因`KeyError`而崩溃,实现安全取值,增强代码的健壮性。

🔄 `update(other_dict)` 方法:能够高效地将另一个字典的键值对合并到当前字典中,如果存在同名键,则会被覆盖,是更新和合并字典的便捷方式。

🗑️ `pop(key[, default])` 和 `popitem()` 方法:`pop()`可以删除指定键的键值对并返回值,同样支持默认值防止错误;`popitem()`(Python 3.7+)则用于弹出并返回字典中最近插入的键值对,常用于将字典模拟成栈。

💡 `setdefault(key[, default])` 方法:在键不存在时,不仅会插入指定的默认值,还会返回该值,特别适用于初始化嵌套字典结构,简化了复杂数据结构的创建过程。

🔑 `keys()`、`values()` 和 `items()` 方法:这三个方法分别返回字典的键、值以及键值对的视图对象,是高效遍历字典内容的关键,支持结合`for`循环进行灵活的数据处理。

苦练Python第26天:精通字典8大必杀技

前言

大家好,我是倔强青铜三。欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

现在我们已经把字典的基本概念摸得门儿清,今天继续升级,把字典的“隐藏技能”一次点满,让你成为真正的 字典忍者!🥷🐍


📦 今日收获清单


🧠 字典热身回顾

字典的本质就是 键值对

user = {    "name": "Alice",    "age": 30,    "city": "Paris"}

🔍 1. get(key[, default]) —— 安全取值不翻车

print(user.get("age"))            # 30print(user.get("email"))          # Noneprint(user.get("email", "N/A"))   # N/A

✅ 当键不存在时,直接返回 None 或你指定的默认值,程序再也不会因为 KeyError 崩溃。


➕ 2. update(other_dict) —— 一键合并/覆盖

user.update({"email": "alice@example.com"})print(user)# {'name': 'Alice', 'age': 30, 'city': 'Paris', 'email': 'alice@example.com'}

✅ 同名键会被覆盖,想更新年龄也就一行:

user.update({"age": 31})  # age 从 30 变 31

❌ 3. pop(key[, default]) —— 删除并返回值

age = user.pop("age")print(age)   # 31print(user)  # 字典里已没有 'age'

如果键不存在,又不想抛错:

email = user.pop("email", "not found")

🚫 4. popitem() —— 弹出“最新”键值对(Python 3.7+)

last = user.popitem()print(last)   # ('email', 'alice@example.com')

✅ 把字典当栈用,先进后出。


🧽 5. clear() —— 一键清空

user.clear()print(user)  # {}

🆕 6. setdefault(key[, default]) —— 取不到就创建

settings = {"theme": "dark"}theme = settings.setdefault("theme", "light")     # 已存在,返回 'dark'lang  = settings.setdefault("language", "English")# 不存在,新增并返回 'English'print(settings)# {'theme': 'dark', 'language': 'English'}

✅ 初始化嵌套结构时特别香:

students = {}students.setdefault("john", {})["math"] = 90students.setdefault("john", {})["science"] = 85print(students)# {'john': {'math': 90, 'science': 85}}

📋 7. keys() · values() · items() —— 遍历三剑客

print(user.keys())    # dict_keys(['name', 'city'])print(user.values())  # dict_values(['Alice', 'Paris'])print(user.items())   # dict_items([('name', 'Alice'), ('city', 'Paris')])

循环用法:

for key, value in user.items():    print(f"{key} = {value}")

🔎 8. in 关键字 —— 快速判断键是否存在

if "name" in user:    print("User has a name")

⚠️ 只扫键,不扫值。


🧪 实战 1:单词计数器

sentence = "apple banana apple orange banana apple"counts = {}for word in sentence.split():    counts[word] = counts.get(word, 0) + 1print(counts)# {'apple': 3, 'banana': 2, 'orange': 1}

📄 实战 2:嵌套字典初始化

students = {}students.setdefault("john", {})["math"] = 90students.setdefault("john", {})["science"] = 85print(students)# {'john': {'math': 90, 'science': 85}}

📌 方法速查表

方法作用
get()安全取值,可给默认值
update()合并或批量更新
pop()删除并返回值
popitem()删除并返回最近插入的键值对
clear()清空字典
setdefault()取不到就设默认值
keys()返回所有键的视图
values()返回所有值的视图
items()返回所有键值对的视图

🧠 今日复盘

恭喜你,距离 100 Days of Python 毕业又近了一天!明天见~

最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎点赞收藏关注,一键三连!!!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python 字典 编程技巧 数据结构 Python教程
相关文章