当前位置: 首页 > news >正文

Python赋值给另一个变量且不改变原变量

Python赋值给另一个变量且不改变原变量


在Python中,如果你想将一个变量的值赋给另一个变量,同时保持原变量不变,你可以使用复制(copy)而不是引用(reference)。Python中的变量通常是通过引用(reference)来传递的,这意味着当你将一个变量的值赋给另一个变量时,实际上你是在将两个变量指向同一个对象。

但如果你想要一个完全独立的副本,你需要使用深复制(deep copy)或浅复制(shallow copy)。深复制会创建一个新的对象,并且复制所有子对象,而浅复制只会创建一个新的对象,但子对象仍然是指向原始对象的引用。

以下是如何使用深复制和浅复制的例子:

python
import copy# 原始变量
original = [1, 2, [3, 4]]# 深复制
deep_copy = copy.deepcopy(original)# 修改原变量
original[2][0] = 5# 打印原变量和深复制的变量,可以看到原变量的改变没有影响到深复制的变量
print(original)  # 输出: [1, 2, [5, 4]]
print(deep_copy)  # 输出: [1, 2, [3, 4]]# 浅复制
shallow_copy = copy.copy(original)# 修改原变量
original[2][0] = 5# 打印原变量和浅复制的变量,可以看到原变量的改变也影响到了浅复制的变量
print(original)  # 输出: [1, 2, [5, 4]]
print(shallow_copy)  # 输出: [1, 2, [5, 4]]

在这个例子中,我们使用了copy.deepcopy进行深复制,和copy.copy进行浅复制。如果你只希望改变赋值的变量而不改变原始变量,你应该使用深复制。

http://www.lryc.cn/news/220300.html

相关文章:

  • PHP进销存ERP系统源码
  • npm i 报错:Cannot read properties of null (reading ‘refs‘)
  • C#学习中关于Visual Studio中ctrl+D快捷键(快速复制当前行)失效的解决办法
  • 银河E8,吉利版Model 3:5米大车身、45寸大屏、首批8295座舱芯
  • 技术分享 | 被测项目需求你理解到位了么?
  • [MRCTF2020]你传你呢1
  • 一些对程序员有用的网站
  • 小程序使用echarts(超详细教程)
  • js控制输入框中的光标位置
  • Openssl生成证书-nginx使用ssl
  • Go语言实现数据结构栈和队列
  • 【vscode】Window11环境下vscode使用Fira Code字体【教程】
  • Sandcastle生成文档
  • P1368 【模板】最小表示法
  • 【Hive】内部表(Managed Table)和外部表(External Table)相关知识点
  • 算法通关村第十四关白银挑战——堆的经典算法题
  • selenium自动化测试入门 —— python unittest单元测试框架
  • C#开发的OpenRA游戏之生命值
  • ubuntu外接显示器、不识别笔记本显示器
  • windows下使用FCL(Flexible-collision-library)
  • Godot4实现游戏的多语言版本
  • 6张图让你了解openRA 下载及编译
  • 华为防火墙 配置 SSLVPN
  • Android Studio(数据存储)
  • 人,要懂得享受孤独
  • Spring Boot + EasyUI Datebox和Datetimebox样例
  • web前端JS基础------制作一个获取验证码
  • MyBatis面经
  • SpringBoot基础(六)-- 辅助功能之一 -- 内嵌tomcat
  • K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示管理