Python 中的字典
原文:https://www.studytonight.com/python/dictionaries-in-python
在本教程中,我们将学习什么是字典?如何使用?和一些用于操作字典的有用函数。
字典很像列表,有一个额外的参数叫做键。回想一下,在列表和字符串中,我们是如何使用索引作为参数来访问字符串/列表的每个元素的。列表和字典之间的主要区别因素是,我们使用键来访问字典的元素(或者使用值来访问键,两者都有)。
此外,与索引不同,键可以是从整数到字符串不等的任何数据类型。这使得它们使用起来更加灵活。
创建词典
因为我们可以灵活地为字典中的每个元素提供键,所以我们必须显式地定义每个键。下面我们有一个表格格式的字典。对于字典中的每个元素,我们都有一个与之关联的键。
| 钥匙 | 价值 | | 键-1 | 元素-1 | | 关键 2 | 元素-2 | | 关键 3 | 元素-3 | | 键-4 | 元素-4 | | 关键 5 | 元素-5 |
python 字典可以创建为:
>>> myDictionary = {'Key-1': 'Element-1', 'Key-2': 'Element-2', 'Key-3': 'Element-3', 'Key-4': 'Element-4'}
注意这里使用的花括号,不像列表中的方括号。这里键-1 、键-2 ...是元素-1 、元素-2 的键...分别是。因此,如果您想要访问字典的任何元素,您应该知道该元素的键。例如,要访问键-3 的元素,则只需使用:
>>>print( myDictionary['Key-3']);
元素-3 '
此外,在字典中,每个元素必须有一个唯一的键,因为一个键用于唯一地标识字典中的每个元素,然而,相反的情况并不成立,这意味着元素可以重复,但是键必须是唯一的。
带有整数键的字典:
>>> integerDictionary = {10: "C++", 20: "Java", 30: "Python", 40: "Ruby", 50: "C#", 60: "Perl"}
>>> print (integerDictionary[30]);
“Python”
以字符串为关键字的字典:
>>> identity = {"name": "StudyTonight", "type": "Educational", "link": "https://studytonight.com", "tag": "Best place to learn"}
>>> print (identity['name'] + ": " + identity['tag']);
StudyTonight:最好的学习场所
要创建空字典,请执行以下操作:
>>> emptyList = {}
上面一行代码成功初始化了一个空字典。我们可以很容易地在空字典初始化后向其添加元素。假设你想用键将德里添加到你的字典中,然后像这样做,
>>> emptyList["India"] = "Delhi"
这个元素将被添加到字典中。
>>> print(emptyList);
{“印度”:“德里”}
访问字典的元素
存储在字典中的元素可以像 python 中的列表一样访问,即使用for循环。然而,在迭代每个元素时,我们将获得键而不是元素的值,因此,要访问元素的值,我们必须像使用索引一样使用键,例如:myDictionary[key]。
for i in myDictionary:
print ("Key: " + i + " and Element: " + myDictionary[i]);
键:键 1 和元素:元素 1 键:键 2 和元素:元素 2 键:键 3 和元素:元素 3 键:键 4 和元素:元素 4 键:键 5 和元素:元素 5
删除字典中的元素
可以使用del关键字删除元素,这类似于在列表中删除元素。例如,考虑到我们的网站详细信息字典,
>>> identity = {"name": "StudyTonight", "type": "Educational", "link": "http://studytonight.com", "tag": "Best place to learn"}
如果我们想删除链接键及其相关值,那么
>>> del identity["link"]
将删除该元素。
>>> print (identity);
{“名称”:“StudyTonight”、“类型”:“教育”、“领域”:“标签”:“最佳学习地点”}
将元素追加到词典中
假设您想向已经初始化的列表中添加一个额外的元素,该列表包含元素,那么您所要做的就是:
>>> identity["email": "we@studytonight.com"]
它将被添加到字典中。
>>> print (identity);
{“姓名”:“StudyTonight”,“type”:“Educational”,“tag”:“最佳学习地点”,“email”:“we @ study night . com”}
更新字典中的现有元素
update()功能用于将两本词典合并为一本。后一个字典会覆盖这两个列表的公共值。例如,让我们假设有另一个字典包含 StudyTonight 的可用课程列表,以及上面示例中使用的列表。
所以现在我们有 2 个列表- identity和courseAvail
>>> courseAvail = {"Java": "Full-course", "C/C++": "Full-course", "DBMS": "Full-course"}
假设我们想要将courseAvail的所有元素复制到列表identity中,那么我们只需要执行以下操作:
>>> identity.update(courseAvail)
注意:这种情况下词典identity会更新,对词典courseAvail不会有影响。