Dictionary

10 阅读2分钟

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

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

1. 基本语法

# 语法:{ 键: 值, 键: 值 }
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. 语法演示

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() 方法: 这是更高级的写法,不会报错。
    # 如果有 "food" 就返回对应的值;如果没有,就返回 "Unknown"
    print(my_travel.get("food", "Unknown"))
    
  2. 遍历字典的 Key 和 Value:
    # 同时拿出 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。