- Python 基础
- Python – 首页
- Python – 概述
- Python – 历史
- Python – 特性
- Python vs C++
- Python – Hello World 程序
- Python – 应用领域
- Python – 解释器
- Python – 环境搭建
- Python – 虚拟环境
- Python – 基本语法
- Python – 变量
- Python – 数据类型
- Python – 类型转换
- Python – Unicode 系统
- Python – 字面量
- Python – 运算符
- Python – 算术运算符
- Python – 比较运算符
- Python – 赋值运算符
- Python – 逻辑运算符
- Python – 位运算符
- Python – 成员运算符
- Python – 身份运算符
- Python – 运算符优先级
- Python – 注释
- Python – 用户输入
- Python – 数字
- Python – 布尔值
- Python 控制语句
- Python – 控制流
- Python – 决策
- Python – if 语句
- Python – if else
- Python – 嵌套 if
- Python – Match-Case 语句
- Python – 循环
- Python – for 循环
- Python – for-else 循环
- Python – while 循环
- Python – break 语句
- Python – continue 语句
- Python – pass 语句
- Python – 嵌套循环
- Python 函数与模块
- Python – 函数
- Python – 默认参数
- Python – 关键字参数
- Python – 仅限关键字参数
- Python – 位置参数
- Python – 仅限位置参数
- Python – 可变参数
- Python – 变量作用域
- Python – 函数注解
- Python – 模块
- Python – 内置函数
- Python 字符串
- Python – 字符串
- Python – 字符串切片
- Python – 修改字符串
- Python – 字符串连接
- Python – 字符串格式化
- Python – 转义字符
- Python – 字符串方法
- Python – 字符串练习
- Python 列表
- Python – 列表
- Python – 访问列表元素
- Python – 修改列表元素
- Python – 添加列表元素
- Python – 删除列表元素
- Python – 循环遍历列表
- Python – 列表推导式
- Python – 列表排序
- Python – 列表复制
- Python – 列表合并
- Python – 列表方法
- Python – 列表练习
- Python 元组
- Python – 元组
- Python – 访问元组元素
- Python – 更新元组
- Python – 解包元组
- Python – 循环遍历元组
- Python – 合并元组
- Python – 元组方法
- Python – 元组练习
- Python 集合
- Python – 集合
- Python – 访问集合元素
- Python – 添加集合元素
- Python – 删除集合元素
- Python – 循环遍历集合
- Python – 集合合并
- Python – 集合复制
- Python – 集合运算符
- Python – 集合方法
- Python – 集合练习
- Python 字典
- Python – 字典
- Python – 访问字典元素
- Python – 修改字典元素
- Python – 添加字典元素
- Python – 删除字典元素
- Python – 字典视图对象
- Python – 循环遍历字典
- Python – 字典复制
- Python – 嵌套字典
- Python – 字典方法
- Python – 字典练习
- Python 数组
- Python – 数组
- Python – 访问数组元素
- Python – 添加数组元素
- Python – 删除数组元素
- Python – 循环遍历数组
- Python – 数组复制
- Python – 反转数组
- Python – 数组排序
- Python – 数组合并
- Python – 数组方法
- Python – 数组练习
- Python 文件处理
- Python – 文件处理
- Python – 写入文件
- Python – 读取文件
- Python – 文件重命名和删除
- Python – 目录
- Python – 文件方法
- Python – OS 文件/目录方法
- Python – OS 路径方法
- 面向对象编程
- Python – OOPs 概念
- Python – 类与对象
- Python – 类属性
- Python – 类方法
- Python – 静态方法
- Python – 构造函数
- Python – 访问修饰符
- Python – 继承
- Python – 多态
- Python – 方法重写
- Python – 方法重载
- Python – 动态绑定
- Python – 动态类型
- Python – 抽象
- Python – 封装
- Python – 接口
- Python – 包
- Python – 内部类
- Python – 匿名类和对象
- Python – 单例类
- Python – 包装类
- Python – 枚举
- Python – 反射
- Python 错误与异常
- Python – 语法错误
- Python – 异常
- Python – try-except 块
- Python – try-finally 块
- Python – 抛出异常
- Python – 异常链
- Python – 嵌套 try 块
- Python – 用户自定义异常
- Python – 日志记录
- Python – 断言
- Python – 内置异常
- Python 多线程
- Python – 多线程
- Python – 线程生命周期
- Python – 创建线程
- Python – 启动线程
- Python – 线程连接
- Python – 线程命名
- Python – 线程调度
- Python – 线程池
- Python – 主线程
- Python – 线程优先级
- Python – 守护线程
- Python – 线程同步
- Python 同步
- Python – 线程间通信
- Python – 线程死锁
- Python – 中断线程
- Python 网络编程
- Python – 网络编程
- Python – Socket 编程
- Python – URL 处理
- Python – 泛型
- Python 库
- NumPy 教程
- Pandas 教程
- SciPy 教程
- Matplotlib 教程
- Django 教程
- OpenCV 教程
- Python 杂项
- Python – 日期与时间
- Python – 数学
- Python – 迭代器
- Python – 生成器
- Python – 闭包
- Python – 装饰器
- Python – 递归
- Python – 正则表达式
- Python – PIP
- Python – 数据库访问
- Python – 弱引用
- Python – 序列化
- Python – 模板
- Python – 输出格式化
- Python – 性能测量
- Python – 数据压缩
- Python – CGI 编程
- Python – XML 处理
- Python – GUI 编程
- Python – 命令行参数
- Python – 文档字符串
- Python – JSON
- Python – 发送邮件
- Python – 扩展
- Python – 工具/实用程序
- Python – GUIs
- Python 高级概念
- Python – 抽象基类
- Python – 自定义异常
- Python – 高阶函数
- Python – 对象内部
- Python – 内存管理
- Python – 元类
- Python – 使用元类进行元编程
- Python – 模拟和存根
- Python – Monkey Patching
- Python – 信号处理
- Python – 类型提示
- Python – 自动化教程
- Python – Humanize 包
- Python – 上下文管理器
- Python – 协程
- Python – 描述符
- Python – 诊断和修复内存泄漏
- Python – 不可变数据结构
- Python 资源
- Python – 问答
- Python – 在线测验
- Python – 快速指南
- Python – 参考
- Python – 速查表
- Python – 项目
- Python – 资源
- Python – 讨论
- Python 编译器
- NumPy 编译器
- Matplotlib 编译器
- SciPy 编译器
Python – 字典复制
复制字典
在 Python 中复制字典是指创建一个新的字典,其中包含与原始字典相同的键值对。
我们可以使用多种方法复制字典,具体取决于需求和字典值的性质(它们是可变的还是不可变的,是嵌套的还是非嵌套的)。
浅拷贝
执行浅拷贝时,会创建一个新的字典对象,但它包含对原始字典引用的相同对象的引用。
当您想要复制字典的结构而不复制其包含的嵌套对象时,这很有用。
这可以使用 copy() 方法或 dict() 函数完成,如下所示:
示例:使用 copy() 方法
在下面的示例中,我们可以看到更改浅拷贝中的“age”不会影响原始字典。
但是,修改浅拷贝中的列表也会影响原始字典,因为列表是可变对象,并且只复制了引用。
original_dict = {"name": "Alice", "age": 25, "skills": ["Python", "Data Science"]} shallow_copy = original_dict.copy() # Modifying the shallow copy shallow_copy["age"] = 26 shallow_copy["skills"].append("Machine Learning") print("Original dictionary:", original_dict) print("Shallow copy:", shallow_copy)
以上代码的输出如下:
Original dictionary: {'name': 'Alice', 'age': 25, 'skills': ['Python', 'Data Science', 'Machine Learning']} Shallow copy: {'name': 'Alice', 'age': 26, 'skills': ['Python', 'Data Science', 'Machine Learning']}
示例:使用 dict() 方法
与 copy() 方法类似,dict() 方法 创建一个浅拷贝,如下例所示:
original_dict = {"name": "Bob", "age": 30, "skills": ["Java", "C++"]} shallow_copy = dict(original_dict) # Modifying the shallow copy shallow_copy["age"] = 31 shallow_copy["skills"].append("C#") print("Original dictionary:", original_dict) print("Shallow copy:", shallow_copy)
以上代码的输出如下:
Original dictionary: {'name': 'Bob', 'age': 30, 'skills': ['Java', 'C++', 'C#']} Shallow copy: {'name': 'Bob', 'age': 31, 'skills': ['Java', 'C++', 'C#']}
深拷贝
深拷贝创建一个新的字典,并递归地复制原始字典中找到的所有对象。这意味着不仅字典本身,而且它包含的所有对象(包括嵌套字典、列表等)都会被复制。结果,对深拷贝所做的更改不会影响原始字典,反之亦然。
我们可以使用 copy 模块中的 deepcopy() 函数实现这一点。
示例
在下面的示例中,我们可以看到深拷贝中的“age”值已更改,“skills”列表在深拷贝中已修改(添加了一个项目),并且深拷贝中的“education”字典已修改,所有这些都不会影响原始字典:
import copy original_dict = { "name": "Alice", "age": 25, "skills": ["Python", "Data Science"], "education": { "degree": "Bachelor's", "field": "Computer Science" } } # Creating a deep copy deep_copy = copy.deepcopy(original_dict) # Modifying the deep copy deep_copy["age"] = 26 deep_copy["skills"].append("Machine Learning") deep_copy["education"]["degree"] = "Master's" # Retrieving both dictionaries print("Original dictionary:", original_dict) print("Deep copy:", deep_copy)
这将产生以下输出:
Original dictionary: {'name': 'Alice', 'age': 25, 'skills': ['Python', 'Data Science'], 'education': {'degree': "Bachelor's", 'field': 'Computer Science'}} Deep copy: {'name': 'Alice', 'age': 26, 'skills': ['Python', 'Data Science', 'Machine Learning'], 'education': {'degree': "Master's", 'field': 'Computer Science'}}
使用 copy() 方法复制字典
不能直接使用赋值运算符 (=) 复制字典,可以使用copy() 方法创建字典的浅拷贝。
语法
以下是 Python 中 copy() 方法的基本语法:
new_dict = original_dict.copy()
其中,original_dict 是您要复制的字典。
示例
以下示例演示了使用 copy() 方法创建字典的浅拷贝:
# Creating a dictionary dict1 = {"name": "Krishna", "age": "27", "doy": 1992} # Copying the dictionary dict2 = dict1.copy() # Printing both of the dictionaries print("dict1 :", dict1) print("dict2 :", dict2)
输出
我们将得到如下所示的输出:
dict1 : {'name': 'Krishna', 'age': '27', 'doy': 1992} dict2 : {'name': 'Krishna', 'age': '27', 'doy': 1992}
广告