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