欢迎回来｡
我曾向您提到过, 字典的值可以保存任何类型的数据类型, 但是键呢？
到目前为止, 我只使用字符串来表示键｡
但我能做这样的事吗？
我可以做一, 二, 三｡
就像这样｡
好吧, 让我们来看看｡
让我们来试试吧｡
如果我做了｡
一, 二, 三, 一, 二, 三
然后单击“Run（运行）”｡
我明白了｡
一, 二, 三, 一, 二, 三
太棒了｡
这就对了｡
说说什么｡
真的呢？
如果我选择“如果我有钥匙”｡
真的, 我点击运行, 这样行吗？
是的, 我知道
看起来很有效｡
名单呢？
如果我有一个列表, 比如说, 只有100个呢？
这样行吗？
如果我单击“运行？”
不知道｡
它不工作｡
上面写着无法破解的类型列表｡
那是什么意思？
字典键需要有特殊的属性｡
密钥必须是不可变的｡
那是一把无法改变的钥匙｡
和布尔数｡
我的意思是, 这是一个无法改变的价值观｡
如果您还记得的话, 字符串是一个不能更改的值｡
它是不可改变的｡
但如果你还记得的话, 名单是可以改变的, 对吧？
在一个列表中, 我可以重新分配, 比如说, 索引0, 给别的东西, 对吗？
因此, 字典会说, 嘿, 我的钥匙, 因为我把它们存储在内存中, 我不想丢失它们｡
它必须是不会改变我的东西｡
也许一个程序员进来错误地改变了这个100的数组, 使它有了一个其他东西的索引｡
好吧, 我知道了
Dictionary并不真的想要这样, 因为它不想失去这个值｡
因此字典键必须始终是不可变的｡
当我们学习到其他一些东西时, 比如我们将在接下来的视频中看到的一些东西, 你也可以用它们作为钥匙｡
然而, 在大多数情况下, 95%, 99%的情况下, 字典的关键字通常是描述性的东西, 比如字符串｡
好吧, 我会的
但是这个呢？
如果我们有另一个字符串呢？
一, 二, 三, 一, 二, 三
我们先把这个拿掉｡
当我搜索1､ 2､ 3时会发生什么？
弦｡
如果单击“运行”, 则会得到｡
你好吗？
字典中的一个键必须是唯一的, 因为只能有一个键, 因为这个键将代表内存空间中的一个书架｡
所以每次我用同样的键加一个值, 它都会被覆盖｡
所以这个已经不存在了｡
一个密钥必须是唯一的, 它只能很好地存在, 只有一次｡
否则我们会覆盖它｡
这就是为什么你看｡
你好啊
我们失去了阵列｡
一, 二, 三, 一, 二, 三
让我们在下一个视频中进一步探讨这个想法｡