Python 字典基础知识的令人耳目一新的回顾

王林
发布: 2023-09-03 20:09:02
原创
1404 人浏览过

Python 字典基础知识的令人耳目一新的回顾

在之前的教程中,我讨论了 Python 中一种非常通用且灵活的对象类型,即列表。在本文中,我将继续复习另一种灵活的 Python 对象类型,称为字典(也称为关联数组或哈希)。与列表一样,字典是一个需要掌握的重要概念,以便在您的 Python 之旅中继续前进。

什么是字典?

如果您阅读过列表文章,就会很容易理解字典的概念。它们非常类似于列表,但有两个主要区别:

  1. 它们是无序集合(与有序列表不同)。
  2. 键用于访问项目而不是位置(索引)。

字典中的每个键都有一个值,它可以是任何 Python 对象类型。也就是说,字典可以被视为键值对。但是,请注意不能是List或Dictionary类型。

让我们创建一个英法词典

正如我们在上一节中看到的,字典只是一组无序的键值对。让我们使用这个概念来创建我们的第一个示例:英语-法语词典。该词典可以按如下方式创建:

english_french = {'paper':'papier', 'pen':'stylo', 'car':'voiture', 'table':'table','door':' porte'}

字典 english_french 包含五个英语单词,设置为,其法语含义设置为

假设我们想知道如何用法语说 pen。我们只需执行以下操作:

english_french['pen']

您将在其中获得 stylo 作为返回值。

让事情变得更有趣

假设我们有一个 french_spanish 词典,其单词与 french_spanish 词典,其单词与 english_french 词典中的单词相同,如下所示:

french_spanish = {'papier':'papel', 'stylo':'pluma', 'voiture':'coche', 'table':'mesa', 'porte':' puerta'}

好吧,有人问您如何用西班牙语说 door,而您手头没有英语-西班牙语词典!但是,不用担心,有一个解决方案。查阅您的 english_french 词典中的单词,然后使用结果查阅 french_spanish,而您手头没有英语-西班牙语词典!但是,不用担心,有一个解决方案。查阅您的

词典中的单词,然后使用结果查阅 french_spanish 词典。明白了吗?让我们看看如何在 Python 中做到这一点:

french_spanish[english_french['door']]

puerta。这不是很好吗?尽管您没有英语-西班牙语词典,但您刚刚得到了西班牙语中的 door结果应该是

一词。

更多字典操作

english_french在前面的示例中,我们了解了如何创建字典并访问字典中的项目。让我们看看可以对字典进行更多操作。我将在下面的示例中使用

字典。

字典中有多少条目?

len()换句话来说,这个操作的目的是返回Dictionary中键值对的数量。这可以使用

运算符来执行,如下所示:

len(english_french)

5您应该返回

删除键

字典中项目的删除是通过door进行的。例如,假设我们想从字典中删除单词(键)

。这可以简单地完成如下:

del english_french['door']

这将删除door 及其porte

及其

porte

字典中是否存在该键? door。如果我们想检查 door在上一小节中,我们从字典中删除了

english_french。如果我们想检查

是否仍然存在于字典中,我们输入:

False

中的“门”

not应该返回

'door' 不在 english_french因此,您认为以下语句会返回什么?继续尝试一下(注意

)。

english_french['door']

如果我们尝试访问字典中不存在的

回溯(最近一次调用最后):会发生什么?说

。在这种情况下,您将收到类似于以下内容的错误:

文件“dictionary.py”,第 7 行,位于 <module></module>

打印 english_french['door'] 

KeyError: 'door'   

🎜🎜🎜🎜

创建字典的副本

您可能需要 english_french 词典的副本,并将其分配给另一个词典。这可以使用 copy() 函数简单地完成,如下所示:

new_english_french = english_french.copy()

嵌套字典

正如我们上面提到的,字典中的值可以是任何类型,包括字典。这称为嵌套。示例如下:

学生 = {'ID':{'name':'Abder-Rahman', 'number':'1234'}}

因此,如果您输入 student['ID'],您应该得到:

{'name': 'Abder-Rahman', 'number': '1234'} 

迭代字典

让我们回到 english_french 字典。您可以通过多种方式迭代字典的项目:

english_french 中的单词:

    打印单词

该语句的结果如下:

car

pen

paper

door

table 

请注意,结果中的的顺序与 english_french 字典中的顺序不同。您现在可以明白为什么我说字典被视为无序集合了。

迭代的另一种方法如下:

对于 english_french.iterkeys() 中的单词:

    打印单词

请注意,我们使用了 iterkeys() 函数。类似的可用于迭代值的函数,即 itervalues(),如下所示:

用于 english_french.itervalues() 中的含义:

    打印含义

本例中的结果应如下所示:

voiture

stylo

papier

porte

table

创建字典的替代方法

还有其他方法可以使用 dict 构造函数在 Python 中创建字典。使用 dict 创建相同词典 ID 的一些示例如下:

ID = dict(name = 'Abder-Rahman', number = 1234)

ID = dict([('name','Abder-Rahman'),('number',1234)])

ID = dict(zip(['name','number'],['Abder-Rahman',1234])) # 键和值作为列表

您可以使用词典做更多事情。查看 Python 文档以获取更多信息。

以上是Python 字典基础知识的令人耳目一新的回顾的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!