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。
相关推荐
聪明蛋子哟8 小时前
Stagehand v3多语言SDK:Python/Go/Rust/Java下的浏览器自动化统一方案
python·golang·rust
今天AI了吗9 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
卷无止境9 小时前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
TELL5219 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
Csvn10 小时前
🐍 Day 4: Python 控制流 — 条件、循环与推导式的艺术
后端·python
大鹏说大话12 小时前
从爬虫到决策引擎:大数据下自媒体如何用Python挖掘用户痛点
开发语言·爬虫·python
Niuguangshuo12 小时前
silero-vad:超轻量级开源 VAD 实践指南
开发语言·python
2501_9446761613 小时前
揭秘!WORDTIP公司靠不靠谱?小白必看
大数据·人工智能·python
Minner-Scrapy13 小时前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
CODER030414 小时前
Anaconda和Mamba创建环境管理包常用命令合集
python·深度学习·conda·虚拟环境·mamba·常用命令大全