在闲暇时间,我一直在用Python唠叨很长一段时间,虽然我有一些理解并且肯定使用过词典,但对我来说,它们似乎总是有些陌生,就像我不太喜欢它们一样。也许这就是“字典”这个名字让我失望,事实上,当我使用带有数组的Basic(我知道)时,我开始回归,但它们却完全不同。
我是否可以简单地将Python中的字典视为两列表,其中我们将第一列“keys”的内容和第二列“values”的内容命名为?这种概念化是非常准确和有用的,还是有问题的?
如果是前者,我想我终于能够以这样的方式吞下这个概念,最终使我的思维更加自然。
答案 0 :(得分:0)
2列表的类比可能在某种程度上起作用,但它并未涵盖在实践中如何以及为何使用词典的一些重要方面。
@Sayse的评论在概念上更有用。将字典视为物理语言字典,其中key
是单词本身,value
是单词的定义。字典中的两个项目不能具有相同的key
,但可以具有相同的value
。在语言字典的类比中,如果两个单词具有相同的拼写,则它们是相同的单词。但是,可能存在同义词,其中拼写不同的两个单词可能具有相同的定义。
表格类比也没有涵盖订单未被保留或可靠的字典的行为。在字典中,顺序无关紧要,项目由key
检索。也许另一个有用的类比是将key
视为一个人的名字,而value
就是这个人自己(也许还有很多关于他们的信息)。人们通过他们的名字来识别,但他们可能处于任何给定的顺序或位置......这并不重要,因为我们知道他们的名字,我们可以识别他们。
虽然可能无法保留字典中项目的顺序,但字典具有对单个项目进行非常快速检索的优点。随着要查找的项目数量增加(大约数千或更多),这变得尤为重要。
最后,我还要补充一点,字典通常可以提高代码的可读性。例如,如果您想创建HTML颜色代码的查找表,则使用HTML颜色名称字典的API比使用列表并依赖索引文档来检索值更具可读性和可用性。
因此,如果它可以帮助您将字典概念化为2列的表格,那么这很好,只要您还记住它们的使用规则以及它们提供一些好处的场景: