在之前的教程中,我讨论了 Python 中一种非常通用且灵活的对象类型,即列表。在本文中,我将继续复习另一种灵活的 Python 对象类型,称为字典(也称为关联数组或哈希)。与列表一样,字典是一个需要掌握的重要概念,以便在您的 Python 之旅中继续前进。
什么是字典?
如果您阅读过列表文章,就会很容易理解字典的概念。它们非常类似于列表,但有两个主要区别:
- 它们是无序集合(与有序列表不同)。
- 键用于访问项目而不是位置(即索引)。
字典中的每个键都有一个值,它可以是任何 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中文网其他相关文章!

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中