让我们来讨论下一个数据结构｡
而这一本叫做字典｡
其他语言｡
它可能被称为哈希表, 可能是映射或对象｡
在Python中, 我们有字典的概念｡
或者用Python的话说, 就是命令｡
我得确保我的发音正确｡
当你在录音的时候, 这是一个很难说的词, 而且你总是一遍又一遍地重复它｡
字典｡
这是什么？
它是Python中的一种数据类型, 但也是一种数据结构｡
请记住, 我在讨论列表时提到过数据结构的概念｡
这是我们学到的Python中的第一个数据结构｡
这是一种我们以某种形式组织数据的方式, 这种形式在我们访问数据的方式上有一些不同的优点和缺点, 例如, 使用列表｡
我们看到它们很容易订购｡
我们可以通过像01这样的索引来访问它们｡
我们可以逆转它们, 我们可以插入它们｡
真的很棒｡
字典呢？
好吧, 让我们看看字典是什么样子的｡
字典？
像这样的东西肯定有钥匙的｡
和一个值｡
然后是另一个逗号｡
然后是另一把钥匙｡
和另一个值｡
我们来破译一下｡
所以我在这里用了花括号, 表示字典｡
与列表不同的是, 我们有一个键值对｡
键是一个字符串, 我们可以用它来获取值｡
我是什么意思？
为了访问这些值, 我会查字典.
在我们的例子中, 比如说我们想要获取B, 我们会获取这个键, 然后当我们打印的时候,
听到结果｡
我们也得到了值｡
我们实际上是在告诉计算机, 嘿, 我有一个变量字典｡
记住, 我想给它起什么名字都行｡
我有一本可变字典｡
我要你去找键B, 如果它存在的话, 把值给我.
所以它会进入你的内存或者机器的内存｡
它会找到B在内存中的位置, 并获取值.
所以在书架B中我们有一个值, 如果我们做C, 它不存在｡
如果单击“Run（运行）”, 则会出现错误｡
它告诉我, 嘿, 对不起, 你要找的是C键, 但我真的没有那把键｡
这就是字典｡
字典是一个无序的键值对｡
我所说的无序意味着它们在内存中并不紧挨着｡
记住, 有了列表, 我们可以访问索引为0的列表, 然后是索引为1的列表, 索引为2的列表,
所有这些书架, 或者紧挨着的, 一本字典｡
另一方面, 他们到处都是｡
尽管我在这里写了A和B｡
这个可能在记忆中的一个位置, 而这个可能在记忆中的另一个位置｡
如果我加上, 比如说X, 这将是记忆中的另一个点｡
这可能不太妥当｡
也许我在里面写了a, b, x, 但是当我把整本字典还回去的时候｡
也许我没按顺序来｡
这些都只是分散在我们的记忆中｡
正如你在这里看到的, 当我收到字典时, 我把这些东西整理好了｡
但那只是因为它很小｡
如果我有一本很大很大的字典, 我可能不会按照我插入的顺序排列｡
所以字典是一个无序的键值对｡
只要我们知道键, 就是我们要找的键, 然后我们给予出它, 我们的计算机就会知道,
嘿, 在内存中的什么地方去找, 来获取这些值｡
下面是字典和列表等数据结构的一个很酷的地方｡
它们是数据的容器, 对吧？
所以这可以是我们想要的任何东西｡
假设我们希望这是一个列表｡
一, 二, 三, 一, 二, 三
也许我们希望它是字符串｡
你好吗？
也许这是一个布尔值｡
喜欢｡
是的｡
这是完全正确的｡
我可以访问A｡
就像这样｡
我拿到了名单｡
如果我想要清单中的第二个项目, 该怎么办？
嗯, 我做了一个这样的索引｡
就这样｡
这和列表是一样的, 你会经常看到,
如果我们有一个列表, 或者我们称之为我的列表, 我的列表包含一个字典, 比如说｡
一个｡
你知道吗？
我们复制粘贴一下｡
我们来吧｡
所以数组中的第一项｡
就像这样｡
然后是逗号｡
然后数组中的另一个项目｡
这一次, 这一个有四, 五, 六｡
所以我现在可以从我的清单中抓取｡
了｡
第一个项目｡
阵中｡
然后再抓｡
A是调｡
记住, 这是一个字符串, 然后我们要抓取, 比如说, 第三个项目｡
那我们走吧｡
来｡
如果我运行这个, 我应该得到三和二｡
你去那里｡
现在, 您可能会问自己, 这些数据结构是怎么回事？
比如, 我们为什么需要字典？
为什么我们需要列表？
为什么我们只能有一个东西做一切？
这不是更简单吗？
好好想想, 因为在下一个视频中, 我会尝试回答这个问题｡