🗺️ 计算机科学 4
Loading...
🗝️ 📦 📍

认识字典

(Dictionary / Object)

我们将告别单纯的数字,
学会使用“带标签的资料袋”

一、新的走路方式:Move(pos)

🗣️ 以前:MoveXY(x, y)

像老师大喊:
“走到 10, 20 这个格子!”
(需要两个数字)

🃏 现在:Move(pos)

像老师给你一张“地址卡”
“拿着这张卡走过去。”
(需要一个对象/字典)

# 旧方法 (2个参数)
hero.moveXY(10, 20)

# 新方法 (1个对象参数)
# pender.pos 是一张“地址卡”
hero.move(pender.pos)

move(pos) 更加高级哦!

二、什么是“字典” (Dictionary)?

想象一个“有标签的抽屉柜”

  • Key (键): 抽屉上的标签 (如 "name", "hp")
  • Value (值): 抽屉里的东西 (如 "Hero", 100)
🗝️键值对 (Key-Value Pair)
就是“一把钥匙开一把锁”,标签和内容是绑定的。
player = {
    "name": "Hero",
    "hp": 100,
    "gold": 20
}
{} 花括号表示字典 : 冒号连接键和值

三、自己造一张“地址卡”

有时候我们没有现成的 pos,需要自己手写一个!

这就是字典字面量 (Object Literal)。

翻译一下:
“我要造一个位置对象:
x 是 20,y 是 35。”
while hero.pos.x < 20:
    # 手写一个字典作为参数
    # {'x': 20, 'y': 35}
    
    hero.move({'x': 20, 'y': 35})

四、怎么读取字典里的信息?

我们用点 (Dot Notation) 来打开抽屉。

hero.pos.x

这句话的意思是:

  1. 找到 hero (英雄)
  2. 拿它的 pos (位置抽屉柜)
  3. 打开 x (横坐标抽屉) 看看里面的数字

📍 pos 对象

x: 20
y: 35

五、组合技:数组 + 字典 + 函数

这一关把之前学的“最值算法”和“字典”结合起来了!

# 1. 数组 + 函数:找到最近的硬币
coin = hero.findNearest(hero.findItems())

# 2. 字典:使用硬币自带的“地址卡”
hero.move(coin.pos)

# 3. 字典字面量:手动指定位置撤退
hero.move({"x": 15, "y": 38})
coin.pos 是硬币自带的 {"x":15, "y":38} 是我们手写的

六、List (列表) vs Dict (字典)

特性 List / Array (列表) Dict / Object (字典)
像什么 一排排队的同学 🚶🚶🚶 带标签的资料袋 🗂️
特点 有顺序 (0, 1, 2...) 无顺序,有名字 (x, y)
怎么查 用编号: gems[0] 用名字: pos.x
📐数学小知识:坐标系 (Coordinate System)
x 是水平方向 (左右),y 是垂直方向 (上下)。
{"x": 20, "y": 35} 就是地图上的一个点!