Python字典的平滑刷新

在上一教程中,我谈到了Python中非常灵活且灵活的对象类型,即Lists 。 在本文中,我将继续学习另一个灵活的Python对象类型,该类型称为Dictionary (也称为关联数组哈希 )。 像列表一样,字典是一个重要概念,必须掌握才能在Python之旅中前进。

反正什么是字典?

如果您浏览了“ 列表”一文,将很容易理解“字典”的概念。 它们很像列表,但有两个主要区别:

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

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

让我们创建一个英语-法语词典

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

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

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

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

english_french['pen']

返回值时将得到stylo

使事情更有趣

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

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

好,您被问到如何用西班牙语说door ,并且您手上没有英语-西班牙语词典! 但是,不用担心,有解决方案。 请向您的english_french词典查询该词,然后使用结果查询french_spanish词典。 明白了吗? 让我们看看如何在Python中做到这一点:

french_spanish[english_french['door']]

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

字典上的更多操作

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

词典中有多少个条目?

换句话说,此操作旨在返回字典中的键值对的数量。 可以使用len()运算符执行此操作,如下所示:

len(english_french)

您应该退回5

删除金钥

删除字典中的项目是通过按键进行的 。 例如,假设我们要从字典中删除单词(钥匙) door 。 可以简单地完成以下操作:

del english_french['door']

这将删除钥匙 door及其 porte

字典中是否存在密钥?

在上一部分中,我们从字典中删除了钥匙 door 。 如果要检查词典中door仍然存在,请键入:

'door' in english_french

应该返回False

因此,您认为以下语句将返回什么? 继续尝试一下(注意not )。

'door' not in english_french

如果我们尝试访问字典中不存在的会发生什么? 说出english_french['door'] 。 在这种情况下,您将收到类似于以下内容的错误:

Traceback (most recent call last):

File "dictionary.py", line 7, in

print english_french['door']

KeyError: 'door'

创建词典的副本

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

new_english_french = english_french.copy()

嵌套词典

如上所述,字典中的值可以是任何类型,包括字典。 这称为嵌套 。 这样的一个示例可以如下所示:

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

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

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

遍历字典

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

for word in english_french:

print word

该语句的结果如下:

car

pen

paper

door

table

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

通过密钥进行迭代的另一种方法如下:

for word in english_french.iterkeys():

print word

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

for meaning in english_french.itervalues():

print meaning

在这种情况下,结果应类似于以下内容:

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])) # keys and values as Lists

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

翻译自: https://code.tutsplus.com/tutorials/a-smooth-refresher-on-pythons-dictionaries--cms-25198


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部