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

Python实现浅拷贝的常用策略

问题

class Solution:
def finalPrices(self, prices: List[int]) -> List[int]:
result = prices

我在Python中这样赋值之后,更改result的值,是否会影响prices的值呢


解答

是的,你这样写会影响到原来的 prices

原因是在这一行:

result = prices

你并没有创建一个新的列表,而是让 result 变量引用了与 prices 相同的列表对象。
这意味着无论你通过 result 还是 prices 来修改列表内容,另一个变量也会“看到”同样的改动。

例子:

prices = [8, 4, 6, 2, 3]
result = prices
result[0] = 100
print(prices)  # [100, 4, 6, 2, 3]
print(result)  # [100, 4, 6, 2, 3]

可以看到,修改 result[0] 直接改变了 prices[0] 的值。


如果你不想让 result 修改 prices,需要创建副本,常见方式有:

result = prices[:]       # 切片复制
result = list(prices)    # list() 复制
import copy
result = copy.copy(prices)  # 浅拷贝

这样修改 result 的内容就不会影响到 prices


✅ 总结:

  • result = prices → 共享同一内存(会互相影响)
  • result = prices[:]list(prices) → 创建副本(独立修改)
http://www.xdnf.cn/news/1437229.html

相关文章:

  • Vite 插件 @vitejs/plugin-legacy 深度解析:旧浏览器兼容指南
  • 【Linux】信号量
  • 09.01总结
  • LeetCode算法日记 - Day 30: K 个一组翻转链表、两数之和
  • 基于Springboot和Vue的前后端分离项目
  • playwright+python UI自动化测试中实现图片颜色和像素对比
  • milvus使用
  • Hard Disk Sentinel:全面监控硬盘和SSD的健康与性能
  • Python学习-day4
  • 2026届长亭科技秋招正式开始
  • 算法 --- 模拟
  • NLP学习系列 | Transformer代码简单实现
  • Zephyr如何注册设备实例
  • [Java]PTA:jmu-Java-01入门-取数字浮点数
  • 自学嵌入式第三十三天:网络编程-UDP
  • Day19(前端:JavaScript基础阶段)
  • 分布式中防止重复消费
  • Spring Security的@PreAuthorize注解为什么会知道用户角色?
  • 开悟篇Docker从零到实战一篇文章搞定
  • 基于Python毕业设计推荐:基于Django的全国降水分析可视化系统
  • 战略咨询——解读81页中小企业企业战略规划方案【附全文阅读】
  • go-mapus最简单的离线瓦片地图协作
  • C++后端开发重点知识点
  • Adafruit_nRF52_Bootloader 使用 uf2
  • Spring Cloud Config 核心原理
  • 【C++】编写通用模板代码的重要技巧:T()
  • CICD的持续集成与持续交付和Zabbix
  • 【C++】15. ⼆叉搜索树
  • 室内定位---apriltag 视觉定位demo
  • (四)Python控制结构(条件结构)