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。
相关推荐
程序员龙叔16 小时前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
用户83562907805119 小时前
使用 Python 操作 Word 内容控件
后端·python
码云骑士21 小时前
32-慢查询排查全流程(下)-索引优化实战与最左前缀原则
python
闵孚龙21 小时前
《PyTorch 深度修炼》Dataset 和 DataLoader:数据如何喂给模型
人工智能·pytorch·python
goldenrolan21 小时前
A公司物料替代测试系统 v1.7:从需求到 exe/apk 的 AI 辅助全链路实践
android·自动化测试·软件测试·python·ai
菜板春1 天前
jupyter入门-手册-特征探索
python·jupyter
Metaphor6921 天前
使用 Python 将 PDF 转换为 HTML
python·pdf·html
极光代码工作室1 天前
基于数据仓库的电商数据分析平台
大数据·hadoop·python·spark·数据可视化
开发小能手-roy1 天前
StringBuilder vs StringBuffer:2024年还需要线程安全字符串吗?
开发语言·python·安全