Python中的copy()函数详解(list,array)

 更新时间:2023年09月08日 16:12:49   作者:Vic_Hao  
这篇文章主要介绍了Python中的copy()函数详解(list,array),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python copy()函数详解(list,array)

list

在这里插入图片描述

python变量名相当于标签名list2 = list1, 直接赋值,实质上指向的是同一个内存值。

任意一个变量(list1 or list2)发生改变,都会影响另外一个。

e.g.

>>> list1=[1,2,3,4,5,6]
>>> list2=list1
>>> list1[2]=88
>>> list1
[1, 2, 88, 4, 5, 6]
>>> list2
[1, 2, 88, 4, 5, 6]

而list3和list4是通过切片对list1的复制操作,分别指向了新的值。

任意改变list3或list4的值,不会影响其他。

array

array类型的数据进行拷贝时,和list类型有一点区别。

在这里插入图片描述

数组切片是原始数组的视图,这意味着数据不会被复制,视图上的任何修改都会被直接反映到源数组上。

array1, array2, array3, array4实际指向同一个内存值,任意修改其中的一个变量,其他变量值都会被修改。

若想要得到的是array切片的一份副本而非视图,就需要显式的进行复制操作函数copy()。

e.g.

array5 = array1.copy() # 对原始的array1的复制
array6 = array[1:4].copy() # 对切片array[1:4]的复制

那么,修改array5或array6,就不会影响array1

Python字典的copy函数

copy的功能

将当前字典复制一个新的字典(与原字典不是相同的内存地址)

copy的用法

用法∶

dict.copy() ->该函数无参数,返回一个一模一样的内存地址不同的字典
In [33]: old_dict = {'name' : 'insane' , 'age' : 33}
In [34]: new_dict = ld_dict.copy()
In [35]: id(new_dict) != id(old_dict)
Out[35]: True

实战

# coding:utf-8
fruits = {
    'apple': 30,
    'banana': 50,
    'pear': 100
}
real_fruits = fruits.copy()
print(real_fruits)
real_fruits['orange'] = 50
real_fruits.update({'cherry': 100})
print(real_fruits)
print('原始fruits:', fruits)
real_fruits['apple'] = real_fruits['apple'] - 5
print(real_fruits)
real_fruits['pear'] -= 3
print(real_fruits)
real_fruits.clear()
print(real_fruits)
print('第二天。。。')
real_fruits = fruits.copy()
print(real_fruits)
{'apple': 30, 'banana': 50, 'pear': 100}
{'apple': 30, 'banana': 50, 'pear': 100, 'orange': 50, 'cherry': 100}
原始fruits: {'apple': 30, 'banana': 50, 'pear': 100}
{'apple': 25, 'banana': 50, 'pear': 100, 'orange': 50, 'cherry': 100}
{'apple': 25, 'banana': 50, 'pear': 97, 'orange': 50, 'cherry': 100}
{}
第二天。。。
{'apple': 30, 'banana': 50, 'pear': 100}
Process finished with exit code 0

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python Timer 类使用介绍

    python Timer 类使用介绍

    这篇文章主要介绍了python Timer 类使用介绍的相关资料,帮助大家更好的理解和使用python iupdatable包,感兴趣的朋友可以了解下
    2020-12-12
  • python黑魔法之编码转换

    python黑魔法之编码转换

    这篇文章主要介绍了python黑魔法之编码转换,分析了python编码转换的方法,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • 超详细的Python安装第三方库常用方法汇总

    超详细的Python安装第三方库常用方法汇总

    电脑网络有点问题,直接安装第三方库的时候出现了各种问题,所以在这篇文章里记录一下各种安装第三方库的方法吧,下面这篇文章主要给大家介绍了关于Python安装第三方库常用方法的相关资料,需要的朋友可以参考下
    2022-04-04
  • python进度条库tqdm的基本操作方法

    python进度条库tqdm的基本操作方法

    这篇文章主要介绍了python进度条库tqdm的基本操作方法,tqdm实时输出处理进度而且占用的CPU资源非常少,支持windows、Linux、mac等系统,支持循环处理、多进程、递归处理、还可以结合linux的命令来查看处理情况等优点,下面对其更多内容详细介绍,需要的朋友可以参考一下
    2022-03-03
  • DataFrame数据框模糊查询与去重方式

    DataFrame数据框模糊查询与去重方式

    数据框模糊查询通常使用contains函数和正则表达式来实现,可以查询以某个字符开头、包含或结尾的数据,若数据类型不一致可能会报错,需统一为str类型,数据框去重则通过drop_duplicates函数实现,可指定列进行去重,并有多种处理重复值的方式
    2024-09-09
  • Python搭建FTP服务器的方法示例

    Python搭建FTP服务器的方法示例

    本篇文章主要介绍了Python搭建FTP服务器的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Python实现邮件发送功能的方法详解

    Python实现邮件发送功能的方法详解

    本文将学会各种类型的邮件发送方式,比如普通文本邮件、带附件的邮件等等,如何通过程序发送邮件现在我们还不太了解,接下来就会为大家进行详细的介绍
    2022-05-05
  • 使用Python接受接口回调信息的完整流程

    使用Python接受接口回调信息的完整流程

    本文主要为大家详细介绍了搭建Python Flask服务接收WCS回调数据的完整流程,文内涵盖从安装Python到执行回调脚本的全过程,适合初学者快速上手
    2026-06-06
  • Python3里的super()和__class__使用介绍

    Python3里的super()和__class__使用介绍

    这篇文章主要介绍了Python3里的super()和__class__使用介绍,本文用实例讲解了这两个方法之间的关系,需要的朋友可以参考下
    2015-04-04
  • Python中的bytes类型用法及实例分享

    Python中的bytes类型用法及实例分享

    这篇文章主要介绍了Python中的bytes类型及其用法,Python bytes 类型用来表示一个字节串,bytes 只负责以字节序列的形式来存储数据,下面对其的相关内容介绍,需要的小伙伴可以参考一下
    2022-03-03

最新评论