嵌套数据
每个名字配的不是一个词,而是一组。lida 这一组先是 tea,然后是 rice。guest 这一组只有 water。order 数的是名字。组里的食物不会再变成新的名字。
第一对方括号选名字。order["lida"] 是整组,tea 然后 rice,不是单独的 tea 这个词。第二对方括号在你刚拿到的那一组里选一个位置。位置 0 是 tea。位置 1 是 rice。先名字,后位置。
order = {"lida": ["tea", "rice"], "guest": ["water"]}
print(order["lida"][0])
print(order["lida"][1])
print(len(order))
屏幕上是 tea,然后 rice,然后 2。前两行是 lida 下面的两个位置。2 是名字有几个,不是食物有几样。tea 和 rice 共用一个名字。
guest 的那一组还在,里面是 water。guest 没有被写出来,因为程序从没读过 order["guest"]。读 lida 并没有碰到 guest。
order["guest"][0] 会是 water。order["guest"][1] 会让程序停住。那一组只有一个位置,号码是 0。位置 1 不在。这次读取不会以 None 回来。程序停住。
order["soup"][0] 在第一对方括号就停住。soup 不是一个名字,所以没有可以走进去的一组。第二对方括号不会运行。
写成 order["lida"][0] = "soup",就会用 soup 换掉 tea。rice 仍在位置 1。guest 仍是 water。len(order) 仍是 2。变的是一样食物。名字的数目没变。
下一页把几个值拆到各自的名字里。这一页只是从一个名字走进它下面存放的那一组。
order 里放着什么
- 程序写出什么?
- 第二对方括号之前,order["lida"] 是什么?
- order["guest"][0] 会是什么?
- 写成 order["guest"][1] 会怎样?
- 写成 order["soup"][0] 会怎样?
两样食物,一个名字
屏幕是 tea,然后 rice,然后 2。2 数的是名字。guest 仍放着 water,也没有写出来。没有的位置会让程序停住。没有的名字在第一对方括号就停住。下一页把值拆到各自的名字里。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部