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

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

前言

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

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


📦 今日收获清单

  • 掌握 get()update()pop() 等高频方法
  • 学会安全取值、合并字典、优雅删改
  • 配合真实场景,即学即用

🧠 字典热身回顾

字典的本质就是 键值对

  • 键必须唯一且不可变(字符串、数字、元组等)
  • 值想放啥就放啥
python 复制代码
user = {
    "name": "Alice",
    "age": 30,
    "city": "Paris"
}

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

python 复制代码
print(user.get("age"))            # 30
print(user.get("email"))          # None
print(user.get("email", "N/A"))   # N/A

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


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

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

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

python 复制代码
user.update({"age": 31})  # age 从 30 变 31

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

python 复制代码
age = user.pop("age")
print(age)   # 31
print(user)  # 字典里已没有 'age'

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

python 复制代码
email = user.pop("email", "not found")

🚫 4. popitem() ------ 弹出"最新"键值对(Python 3.7+)

python 复制代码
last = user.popitem()
print(last)   # ('email', 'alice@example.com')

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


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

python 复制代码
user.clear()
print(user)  # {}

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

python 复制代码
settings = {"theme": "dark"}

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

print(settings)
# {'theme': 'dark', 'language': 'English'}

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

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

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

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

循环用法:

python 复制代码
for key, value in user.items():
    print(f"{key} = {value}")

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

python 复制代码
if "name" in user:
    print("User has a name")

⚠️ 只扫键,不扫值。


🧪 实战 1:单词计数器

python 复制代码
sentence = "apple banana apple orange banana apple"
counts = {}

for word in sentence.split():
    counts[word] = counts.get(word, 0) + 1

print(counts)
# {'apple': 3, 'banana': 2, 'orange': 1}

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

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

📌 方法速查表

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

🧠 今日复盘

  • get() 优雅地防 KeyError
  • update() 一行合并字典
  • pop() / popitem() 精准删除
  • setdefault() 轻松初始化嵌套结构
  • keys()/values()/items() 高效遍历

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

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

相关推荐
LiJieNiub44 分钟前
读懂目标检测:从基础概念到主流算法
人工智能·计算机视觉·目标跟踪
weixin_519535771 小时前
从ChatGPT到新质生产力:一份数据驱动的AI研究方向指南
人工智能·深度学习·机器学习·ai·chatgpt·数据分析·aigc
爱喝白开水a1 小时前
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板_langchain prompt
开发语言·数据库·人工智能·python·langchain·prompt·知识图谱
takashi_void2 小时前
如何在本地部署大语言模型(Windows,Mac,Linux)三系统教程
linux·人工智能·windows·macos·语言模型·nlp
OpenCSG2 小时前
【活动预告】2025斗拱开发者大会,共探支付与AI未来
人工智能·ai·开源·大模型·支付安全
生命是有光的2 小时前
【深度学习】神经网络基础
人工智能·深度学习·神经网络
数字供应链安全产品选型2 小时前
国家级!悬镜安全入选两项“网络安全国家标准应用实践案例”
人工智能·安全·web安全
科技新知2 小时前
大厂AI各走“开源”路
人工智能·开源
字节数据平台2 小时前
火山引擎Data Agent再拓新场景,重磅推出用户研究Agent
大数据·人工智能·火山引擎
TGITCIC2 小时前
LLaVA-OV:开源多模态的“可复现”革命,不只是又一个模型
人工智能·开源·多模态·ai大模型·开源大模型·视觉模型·大模型ai