Python中的副本和视图

本文详细解释了副本和视图的概念及其区别。副本是对原始数据的完全复制,修改副本不会影响原始数据。视图则是原始数据的一个引用,通过视图进行的修改会直接作用于原始数据。文章还列举了副本和视图出现的常见场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

何为副本?何为视图?

副本:就是原有数据的一份拷贝。

视图:可理解为原有数据的一个别称或引用,通过该别称或引用亦便可访问、操作原有数据,但原有数据不会产生拷贝。


视图与副本的区别

副本即原有数据的一份拷贝,因此对副本的任何修改不会影响原有数据,同理,对原有数据的任何修改亦不影响副本数据。

        视图仅是原有数据的一个引用或别称,通过视图修改数据可反映到对原有数据的修改,因此,在意图不明确的情况下需慎重操作。


出现副本的常见情况

     列表切片;调用deepCopy()函数;调用Numpy中的copy()函数;等等。


出现视图的常见情况

     Numpy中的赋值操作和切片操作,等等。


Python官方文档说明

  • If we have a mutable object (list, dict, set, etc.), we can use some specific operations to mutate it and all the variables that refer to it will see the change.
  • If we have an immutable object (str, int, tuple, etc.), all the variables that refer to it will always see the same value, but operations that transform that value into a new value always return a new object


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值