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

总结

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

相关文章

  • baselines示例程序train_cartpole.py的ImportError

    baselines示例程序train_cartpole.py的ImportError

    这篇文章主要为大家介绍了baselines示例程序train_cartpole.py的ImportError引入错误详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • pip安装py_zipkin时提示的SSL问题对应

    pip安装py_zipkin时提示的SSL问题对应

    今天小编就为大家分享一篇关于pip安装py_zipkin时提示的SSL问题对应,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • python中array数组添加一行或一列数据的具体实现

    python中array数组添加一行或一列数据的具体实现

    这篇文章主要给大家介绍了关于python中array数组添加一行或一列数据的具体实现,最近经常使用到数组方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • 浅析python redis的连接及相关操作

    浅析python redis的连接及相关操作

    Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。这篇文章主要介绍了python redis的连接及相关操作,需要的朋友可以参考下
    2019-11-11
  • python解析PDF程序代码

    python解析PDF程序代码

    python解析pdf信息,目前还是不能做到很完善,每个方法都会有它的弊端,都需要结合自己的业务场景来和其它方法一块进行使用,从而达到一个相对满意的目标,接下来给大家介绍python解析PDF的程序代码,一起看看吧
    2021-06-06
  • Python之两种模式的生产者消费者模型详解

    Python之两种模式的生产者消费者模型详解

    今天小编就为大家分享一篇Python之两种模式的生产者消费者模型详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Linux 修改Python命令的方法示例

    Linux 修改Python命令的方法示例

    这篇文章主要介绍了Linux 修改Python命令的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • python中aioysql(异步操作MySQL)的方法

    python中aioysql(异步操作MySQL)的方法

    这篇文章主要介绍了aioysql(异步操作MySQL)-python 的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Python中read()、readline()和readlines()三者间的区别和用法

    Python中read()、readline()和readlines()三者间的区别和用法

    这篇文章主要给大家介绍了关于Python中读取文件的read()、readline()和readlines()方法三者间的区别和用法,需要的朋友可以参考下
    2017-07-07
  • python实现在每个独立进程中运行一个函数的方法

    python实现在每个独立进程中运行一个函数的方法

    这篇文章主要介绍了python实现在每个独立进程中运行一个函数的方法,涉及Python操作进程的相关技巧,需要的朋友可以参考下
    2015-04-04

最新评论