字典是Python最重要的数据类型之一。所以,如果你想掌握Python语言,你需要知道字典的来龙去去。

在本文中,我们将向您展示如何使用字典,并说明基本技术和高级技术。

什么是python字典?

在Python中,字典是一个无序的键值对集合。字典是无序Nature意味着它内部的项目并未以任何特定顺序存储,因此无法通过列表中的位置访问。相反,您可以通过索引具有密钥的字典来检索字典的元素。Python字典中的每个键都是唯一的,并且具有关联的值,其中字典返回后呈现键。

如果您在另一个中编写了代码编程语言与JavaScript或C一样,您可能会发现熟悉的描述 - Python词典与关联数组,HashMaps或Lookup表没有什么不同。赋予其快速高效性能的最有用的数据类型词典。他们习惯于解决一系列问题 - 即使是Python类也只是引擎盖下的词典!

让我们来看一个字典的基本代码示例。

创建Python字典

Python词典可以用Crly括号或使用dict()函数。

Cully括号方法需要将键和值与冒号分离,以及带有逗号的键值对。以下模板是说明性的。

重要的是要知道钥匙仅限于哈希布扎尔数据类型(字符串,数字和元组),并且必须在单个字典中唯一。相比之下,值不必是唯一的,可能来自任何数据类型 - 它们甚至可以来自另一个字典。

使用上面的语法,让我们创建一个词典,其中包含有关Dostoevsky的“犯罪和惩罚”的信息。

在屏幕上打印出时,字典的结构对应于其结构。

或者,您可以使用Python创建字典dict()通过提供包含密钥的元组列表和由逗号分隔的值列表。以下示例说明了这种方法。

两种方法之间没有区别;两者都将构建相同的字典,因此您可以自行决定使用。请注意,您还可以创建一个空字典。创建一个空词典如果您不想立即使用物品,则很有用。

访问字典的元素

创建dictionary之后,您可能希望访问它的值。你可以通过在字典名称后面的方括号内指定一个键来访问Python字典的元素。方括号内提供的键指定要访问的键-值对。

检索一个值之后,就可以执行与该值的数据类型相关的所有操作。在上面的字典中,类型包含在列表数据类型中,因此所有列表操作(如位置索引)都应用于它。让我们看几个例子。

如果尝试使用该字典中不存在的键访问Python字典,则Python解释器将引发错误:

为了避免接收错误,您可以在尝试使用该键之前检查字典中是否存在该键。一种方法是使用运营商。它会回复回复真正如果字典中包含键和除此以外。在下面的示例中,如果在字典中存在密钥“语言”,则程序将仅执行打印语句。

或者,Python词典提供了get ()方法。此方法允许您指定在字典中不存在的密钥不存在的情况下指定要返回的默认值。

填充Python字典

在上面的示例中,我们通过立即提供所有项目来创建一条字典。但是,建立词典更常见是一个增量过程。您可以更新具有以下语法的字典:

以这种方式更新字典为文键添加了一个新的键值对,键在字典中尚未存在,更新使用新的键替换其现有值。在下面的示例中,我们将增强我们的字典,以包括关于小说的更多信息:

我们可以打印字典,以确保它反映了我们添加的内容:

Update()方法

有时您可能希望填充一个字典,其中值是另一个字符。您可以这样做的方式是通过新的字典的键值对迭代,并使用上面的语法添加每对。另一种方式将是通过使用的更新()方法具有以下语法:

更新()接受键值对的iterable或另一个字典作为其参数。如果一个键在目标字典中不存在,此方法将添加一个键-值对,并更新一个存在该键的键的现有值。

现在让我们说我们想改变我们的书的评分。我们将创建一个包含更新额定值的新字典,确保额定值与目标字典中的相同。然后,使用上面的方法,我们将更新我们的字典。

现在,让我们打印评级以确保他们已更新。

遍历Python字典

您通常会在有必要迭代字典的元素的情况下发现自己。Python为执行此操作提供了一些有用的工具。

对字典进行迭代最直接的方法是使用对于循环。默认情况下,for循环将迭代字典的密钥。或者,您可以使用使用键,值或键值对来指定是否要迭代键键()值(),项目()方法分别。

在下面的示例中,我们遍历我们的字典并打印其所有预先存在的键值对。由于FOR循环默认通过键迭代,因此我们将通过指定方括号内的密钥来访问像往常一样的值。

我们也可以达到同样的结果与项目()方法,它返回包含键值对的元组的迭代:

排序Python字典

通常需要在字典中排序元素。让我们创建一个Python字典,其中包含一些着名作家的诞生年份,并使用它排序sorted()方法:

排序单值简单:

但是,我们更经常想要按键或值对字典进行排序,同时保留对。让我们来看看这是如何做到的。

回想起那个项目()返回元组内包含的键值对序列,其中键在第一位置和第二个位置。sorted()假设默认情况下,我们要根据第一个元素对序列进行排序。因此,在输出中,字典由键排序。

在下面的代码片段中,我们将使用相同的方法,但是提供了参数用python形式的论点匿名函数。此函数指定我们希望根据索引1定位的元素的每个元素对序列进行排序,这是元组中值的位置。

因此,字典按升序按年份排序。提供反向=真实对方法调用将按降序对元素进行排序:

注意,字典将根据其包含的数据类型进行排序。字符串是按字母顺序排序的,而数字是按升序排序的。如果键或值由无法相互比较的不同数据类型(如数字和字符串)组成,Python解释器将引发错误。

了解更多

在本文中,我们涵盖了使用Python词典的基本和高级策略。了解如何使用词典是对任何程序员的工具包不可或缺的,但是您需要学习掌握Python的更多信息。

看看我们的纳米度编程简介188金宝搏安不安全,一个节目,这可能是您对Web和App开发,机器学习,数据科学,AI等职业生涯的第一步。

开始学习