当前位置:首页>python>学Python别死磕字典!生活类比一遍吃透,再也不搞混键值对

学Python别死磕字典!生活类比一遍吃透,再也不搞混键值对

  • 2026-10-11 06:19:47
学Python别死磕字典!生活类比一遍吃透,再也不搞混键值对

Python新手,熬过了列表,直接栽在字典上!

列表的增删改查刚摸熟,一碰到字典的键、值、键值对,瞬间脑子一团乱。分不清key和value、不知道什么时候用字典、总写错取值方法、频繁报错。

今天完全抛开书本枯燥定义,全程大白话+生活类比,不用死记硬背,看完直接弄懂字典核心,上手敲代码零卡顿。

先说好:字典真的比列表简单!只是你没人用通俗的方式讲明白。

一、字典核心一句话,记住就不会懵

字典英文 dict,标识是大括号 {}

核心特点:无序(新版Python看似有序,本质是映射关系)、键值对应、查询超快、按名字取值,不按序号取值。

简单说:列表是「按顺序排队的清单」,字典是「一对一对应的对照表」。

二、生活化类比,彻底吃透字典本质

字典 = 随身备忘录 / 通讯录

通讯录里:名字对应的手机号、性别、年龄,一一对应。

你不会问「通讯录第3个人是谁」,你只会问「张三的电话是多少」。

这就是字典的核心:不用数位置,通过名字(key)找内容(value)。

举个最直观的代码例子

# key是姓名,value是年龄
info = {"小明": 18, "小红": 20, "小李": 19}

字典3个核心特性(对应生活场景)

1、键key:唯一、不能重复

通讯录里不可能有两个一模一样的「小明」,重复了就分不清是谁,所以字典的键绝对不允许重复,重复写会直接覆盖旧数据。

2、值value:随便改、随便重复

两个人可以同岁,所有人年龄都是18也没问题,值可以是数字、文字、列表、甚至另一个字典,不限类型。

3、不靠下标,靠键取值

列表靠0、1、2序号取值,字典完全不用数位置,直接报键名就能拿到对应的值。

print(info["小明"])  # 输出18

新手必记区分:列表VS字典

列表[]:靠序号取值,有序、可重复、适合存同类清单

字典{}:靠名字取值,一一对应、键唯一、适合存对应关系

三、字典最常用操作,配套可直接抄的实操代码

不用死背方法名,结合「增删改查」的生活场景记,敲两遍就永久记住。

1、查数据(用备忘录查信息)

两种方式,新手优先用get,不容易报错

stu = {"name": "小王", "age": 22, "gender": "男"}

# 方式1:直接按键取值,找不到键直接报错
print(stu["name"])

# 方式2:get取值,找不到不报错,返回None(超适合新手)
print(stu.get("age"))
# 还可以自定义找不到的提示
print(stu.get("height", "没有该数据"))

2、改数据(修改备忘录内容)

字典修改超级简单:存在键就更新值,不存在就新增数据

# 修改原有数据
stu["age"] = 23
print(stu)

# 新增键值对
stu["score"] = 95
print(stu)

3、增数据(添加新的备忘录信息)

除了直接赋值新增,还有批量更新方法update()

# 批量添加/修改多个键值对
stu.update({"address": "北京", "hobby": "打球"})
print(stu)

4、删数据(删除备忘录内容)

三个删除方法,用途完全不一样,别混用

# 1、pop():指定键删除,能拿到删掉的值
stu.pop("hobby")

# 2、popitem():删除最后一组键值对(新版Python)
stu.popitem()

# 3、clear():一键清空整个字典
stu.clear()

5、高频必备:提取所有键、所有值、所有键值对

循环遍历字典必用,刷题、做项目百分百用到

d = {"a": 1, "b": 2, "c": 3}

print(d.keys())    # 获取所有键
print(d.values())  # 获取所有值
print(d.items())   # 获取所有键值对(遍历神器)

四、新手必踩4个字典易错坑,提前规避零报错

这些错误90%新手都犯过,看完直接避开,少熬无数夜

坑1:直接取值不存在的键,程序崩溃

用字典["不存在的键"],代码直接报错终止。

解决:一律用字典.get(),找不到数据只会返回None,程序不崩溃。

坑2:键重复,数据被偷偷覆盖

d = {"name": "张三", "name": "李四"}
print(d)  # 只会保留最后一个,张三被直接覆盖

记住:键必须唯一,重复必覆盖,写代码前一定要检查键名。

坑3:乱用可变类型当键

字典的键必须是不可变类型(字符串、数字、元组),列表绝对不能当键!

因为列表能修改、不固定,字典无法识别,直接报错。值随便用什么类型都没问题。

坑4:分不清新增和修改

stu["age"] = 25

键存在 = 修改数据

键不存在 = 新增数据

就这一行代码,兼顾新增和修改,不用分开写逻辑,超级方便。

五、什么时候用字典?看完再也不纠结列表和字典

1、数据是一一对应关系:姓名-年龄、学号-成绩、商品名-价格

2、需要精准查询,不想一个个遍历查找,字典查询速度远超列表

3、数据字段不统一、需要自定义标识,适合存个人信息、详情数据

4、不需要排序、不需要按序号取值,只需要按名称取值的场景

六、新手速成小技巧,比死记知识点管用10倍

1、记核心公式:字典 = 键:值,键唯一,值随意

2、取值优先get,改增直接赋值,批量更新用update,删除用pop

3、故意写错测试:写一个不存在的键看报错、写重复键看覆盖,出错一次记忆顶背诵十次

4、做题快速判断:有对应关系、按名字取值 → 直接用字典;有序排队、批量同类数据 → 用列表

其实字典一点都不难,难的是没人用生活逻辑帮你梳理!

初学Python的小伙伴,你是卡在键值对分不清?还是取值、删除方法总用混?评论区说说你的难点,下期出专属保姆级实操练习题!

点个关注,全程大白话讲Python,不搞晦涩术语,零基础也能轻松入门!

最新文章

随机文章