Dictionary

第一部分:什么是 Dictionary?(详细介绍)

在 Python 中,List 是像"排队"一样的数据,你是通过"第几个位置"(索引 0, 1, 2...)来找到数据的。 Dictionary 是像"图书馆索引"一样的数据,你是通过"名字"(Key)来找到"内容"(Value)。

1. 基本语法

python 复制代码
# 语法:{ 键: 值, 键: 值 }
my_travel = {
    "city": "Perth",
    "days": 5,
    "is_fun": True
}

2. 注意点 (面试和写代码常考)

  • Key 必须是唯一的: 如果你写了两个 "city",后面那个会覆盖前面那个。
  • Key 必须是"不可变"的: 通常我们用字符串 str 或数字 int 做 Key。你不能用 list 做 Key,因为 list 会变。
  • 无序性(旧版本): 虽然现在的 Python (3.7+) 字典是有序的,但你要记住,字典的核心是通过 Key 找 Value,而不是通过顺序。

3. 如何使用

  • 读取: my_travel["city"] -> 输出 "Perth"
  • 增加/修改:
    • 修改:my_travel["days"] = 6
    • 增加:my_travel["hotel"] = "Hilton"

第二部分:if key in dict (这其实是 Python 的防错神器)

你在写代码时,最怕遇到的错误就是 KeyError。比如你写了 my_travel["food"],但字典里根本没有 food 这个 Key,程序会直接崩溃。

if key in dict 就是在读取前先"打个报告",确认一下这东西在不在。

1. 语法演示

python 复制代码
my_travel = {"city": "Perth", "days": 5}

# 检查 key 是否存在
if "city" in my_travel:
    print("我知道你在哪个城市:", my_travel["city"])
else:
    print("字典里没有城市信息")

# 检查一个不存在的 key
if "food" in my_travel:
    print(my_travel["food"])
else:
    print("抱歉,还没有记录美食信息")

第三部分:为什么明天教这个?(给你的教学锦囊)

明天你可以这样引导小朋友:

  1. 类比法: 告诉她 List 是你去超市买菜的清单,你得按顺序看。Dictionary 是你的手机通讯录,你想找妈妈,直接搜"妈妈"这个名字,手机就告诉你号码。
  2. 设置陷阱: 故意写一个 print(my_travel["food"]),然后让它报错 KeyError。
    • 然后说: "哎呀!电脑报错了!它说找不到 food。我们能不能在报错之前,先问问电脑:'嘿,字典里有 food 吗?' 如果有,我们再读,如果没有,我们就跳过。"
    • 这就是 if key in dict 的由来。

第四部分:给你的进阶补充 (你可能会用到)

除了 if key in,还有两个高级用法,万一她问起来:

  1. .get() 方法: 这是更高级的写法,不会报错。

    python 复制代码
    # 如果有 "food" 就返回对应的值;如果没有,就返回 "Unknown"
    print(my_travel.get("food", "Unknown"))
  2. 遍历字典的 Key 和 Value:

    python 复制代码
    # 同时拿出 key 和 value
    for key, value in my_travel.items():
        print(f"键是 {key}, 值是 {value}")
  • 如果分不清 Key 和 Value: 你就让记成 Key = 名字,Value = 内容。比如 Name: "Lucy",Name 是 Key,Lucy 是 Value。
  • 如果她错了: 永远保持冷静,告诉她 Python 非常严谨,拼写错了(比如大小写、多了一个空格)都会找不到 Key。
相关推荐
用户019027581618 小时前
Dify / Coze 低代码 Agent 怎么接 A 股行情?
python
Dumbness9 小时前
不传 day 参数,座位图显示全空:用 Python 标准库手写 Web 框架,请求到业务代码前的 5 个细节
后端·python
databook10 小时前
收上来一堆 Excel,怎么保证没改错
python·数据分析
2601_9679873710 小时前
Python 教程:默认字典(defaultdict)全维度深度指南
python·性能优化·数据处理·collections·defaultdict
鱼听禅11 小时前
Ubuntu安装YOLOv8进行菌落识别训练
linux·python·yolo·ubuntu
ZhengEnCi11 小时前
Agent 查不出代码 Bug 怎么办:一份带时间戳的调试日志与读日志排查流程
python·ai编程
威哥爱编程12 小时前
模拟面试智能体开发实战 05:给面试官接上题库和检索,题目结构化、大纲可溯源,AI 不再凭印象出题
python·agent·harmonyos
威哥爱编程12 小时前
模拟面试智能体开发实战 06:答得好怎么追问、答得错怎么点破,追问引擎让面试官会深挖会纠错
python·agent·harmonyos
codists12 小时前
《crafting interpreters》阅读笔记:4.6.2
python
2601_9679791213 小时前
机器学习必修课:经典算法与Python实战
python·算法·机器学习·实战·课程