Python 复制字典的方法
Python中的字典是一种集合数据类型,它以键的形式存储信息并具有相应的值。它是无序的,并且存储的数据可以被修改。我们使用字典来执行各种操作,它的应用领域包括数据库管理、机器学习和Web框架开发。
在本文中,我们将执行一个基于字典的基本操作,解释从已存在的字典中复制字典元素的不同方法。在我们深入讨论这个话题之前,让我们快速浏览一下本文的概述。
什么是字典
在Python中,字典是一种用于存储数据的集合数据类型。不同的键被赋予不同的值。键是不可变的,即它们不能被更改。每个键可以包含不同的值,但是一个值不能与多个键相关联。对于Python来说,字典是具有数据类型“dict”的对象。
创建字典
可以使用花括号来创建字典。其语法为 –
dict1 = {"Name": ["ROHIT", "AJAY", "RAGHAV"],"Age": [18, 22, 25]}
在这里,“ Name ”是一个具有三个值的键,类似地,“ Age ”也是具有三个值的键。这些值可以是任何数据类型。另一方面,键也可以是不同的数据类型,但条件是它应该是不可变的。 例如:-字符串、元组、整数。
现在我们知道了字典创建过程和与之相关的各种属性,我们将了解复制字典的操作。
复制字典是什么意思
当我们说要复制一个字典时,意味着我们将从一个字典源复制键值对到我们的本地字典中。有多种方法可以完成这个操作:
使用copy()方法
这个方法创建了原始字典的副本。关于这个方法值得注意的细节是,当我们对复制的字典进行更改时,它不会在原始字典中反映出来,但当原始字典被改变时,我们会观察到复制版本的变化。让我们看看它的实现。
示例
dict1 = {"Name": ["ROHIT", "AJAY", "RAGHAV"],"Age": [18, 22, 25]}
dict2 = dict1.copy()
print (dict2)
输出
{'Name': ['ROHIT', 'AJAY', 'RAGHAV'], 'Age': [18, 22, 25]}
现在让我们看看当我们操作复制的字典时会发生哪些变化 –
示例
dict1 = {"Name": ["ROHIT", "AJAY", "RAGHAV"],"Age": [18, 22, 25]}
dict2 = dict1.copy()
dict2["Name"] = ["ARJUN", "VIJAY", "RAVI"]
print("The source dictionary is", dict1)
print("The copied dictionary is", dict2)
输出
The source dictionary is {'Name': ['ROHIT', 'AJAY', 'RAGHAV'], 'Age': [18, 22, 25]}
The copied dictionary is {'Name': ['ARJUN', 'VIJAY', 'RAVI'], 'Age': [18, 22, 25]}
如我们所见,由于浅复制创建,源字典中没有反映出任何更改。复制的字典引用源字典。
使用字典推导式
这种方法使用字典推导式迭代并将源字典的元素添加到新字典中。
我们将遍历源字典并使用 items() 方法将键值对添加到新字典中。让我们看看它的实现 –
示例
以下是一个示例。在这里,
- 我们创建了一个源字典。
-
我们使用字典推导式遍历源字典,并使用items()添加键值对。
-
我们操作了复制的字典并打印了两个版本。
dict1 = {"Name": ["ROHIT", "AJAY", "RAGHAV"],"Age": [18, 22, 25]}
dict2 = {keys: values for keys, values in dict1.items()}
print("The source dictionary is", dict1)
dict2["Age"] = [33, 23, 21]
print("The copied dictionary is", dict2)
输出
The source dictionary is {'Name': ['ROHIT', 'AJAY', 'RAGHAV'], 'Age': [18, 22, 25]}
The copied dictionary is {'Name': ['ROHIT', 'AJAY', 'RAGHAV'], 'Age': [33, 23, 21]}
使用dict()方法
在这种方法中,我们将使用dict()方法创建一个新的字典。在参数中,我们将传递源字典。传递的字典将被自动复制。让我们看看它的实现。
示例
以下示例使用dict()方法复制字典的内容。在这里,
- 我们将键“Name”的值“ROHIT”更改为“MAHI”。
-
复制后,我们打印了两个字典。
dict1 = {"Name": ["ROHIT", "AJAY", "RAGHAV"],"Age": [18, 22, 25]}
dict2 = dict(dict1)
print("The source dictionary is", dict1)
dict2["Name"] = ["MAHI", "AJAY", "RAGHAV"]
print("The copied dictionary is", dict2)
输出
The source dictionary is {'Name': ['ROHIT', 'AJAY', 'RAGHAV'], 'Age': [18, 22, 25]}
The copied dictionary is {'Name': ['MAHI', 'AJAY', 'RAGHAV'], 'Age': [18, 22, 25]}
结论
在本文中,我们讨论了从源中复制一个字典涉及的各种方法。我们了解了浅拷贝的概念,并观察了键值对的行为。