浅谈Python 列表字典赋值的陷阱

 更新时间:2019年01月20日 14:04:48   作者:EricaApple  
今天小编就为大家分享一篇浅谈Python 列表字典赋值的陷阱,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

今天在用python刷leetcode 3Sum problem时,调入到了一个大坑中,检查半天并没有任何逻辑错误,但输出结果却总是不对,最终通过调试发现原来python中list和dict类型直接赋值竟然是浅拷贝!!!因此,在实际实验中,若要实现深拷贝,建立新list或dict,使新建的list或dict变量和以前的变量只是具有相同的值,但是却具有不同的存储地址,保证在改变以前的list变量的时候,不会对新的list产生任何影响。

python中的深拷贝的实现需要通过copy.deepcopy函数来实现。

具体操作如下:

# python
>>> from copy import deepcopy

- 关于dict的深浅拷贝实验示例

>>> a=dict() #建立字典
>>> a['e1']=1 #添加字典元素
>>> a['e2']=2
>>> a #查看字典内容,输出如下
{'e1': 1, 'e2': 2}

>>> b=a #浅拷贝

>>> c=deepcopy(a) #深拷贝

>>> a['e1']=3 #改变字典的内容,观察深浅拷贝变量的变化

>>> a
{'e1': 3, 'e2': 2}
>>> b
{'e1': 3, 'e2': 2}
>>> c
{'e1': 1, 'e2': 2}

- 关于list的深浅拷贝实验示例

>>> a=[1, 2, 2, 3] 
>>> b=deepcopy(a)
>>> c=a
>>> a.remove(2) #去掉列表a中的2,注意一次remove只去掉一个元素

>>> a
[1, 2, 3]
>>> b
[1, 2, 2, 3] 
>>> c
[1, 2, 3]

以上这篇浅谈Python 列表字典赋值的陷阱就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中用函数作为返回值和实现闭包的教程

    Python中用函数作为返回值和实现闭包的教程

    这篇文章主要介绍了Python中用函数作为返回值和实现闭包的教程,代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • 对numpy中array和asarray的区别详解

    对numpy中array和asarray的区别详解

    下面小编就为大家分享一篇对numpy中array和asarray的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Django中使用celery完成异步任务的示例代码

    Django中使用celery完成异步任务的示例代码

    本篇文章主要介绍了Django中使用celery完成异步任务的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 2行Python代码实现给pdf文件添加水印

    2行Python代码实现给pdf文件添加水印

    你们在给PDF文件添加水印时,还在手动一页页添加吗?本文小编为大家带来了一个更方便的方法,即用Python的2行代码来实现,感兴趣的小伙伴可以学习一下
    2022-02-02
  • PyTorch中Tensor的维度变换实现

    PyTorch中Tensor的维度变换实现

    这篇文章主要介绍了PyTorch中Tensor的维度变换实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python获取女友聊天记录详细流程

    Python获取女友聊天记录详细流程

    就在前段时间,在大学睡我上铺的兄弟,在兄嘚群里讨论,说:他发现女朋友这几天只要下班就坐在电脑前,不是工作原因。而且只要他靠近一点就会立即退出页面,所以他一直很怀疑,在群里问我们这一个个单身狗。然后就出现下面这一段对话
    2021-10-10
  • 浅析matlab中imadjust函数

    浅析matlab中imadjust函数

    对进行图像的灰度变换,即调节灰度图像的亮度或彩色图像的颜色矩阵。这篇文章主要介绍了matlab中imadjust函数,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下
    2020-02-02
  • 如何使用Python对NetCDF数据做空间相关分析

    如何使用Python对NetCDF数据做空间相关分析

    这篇文章主要介绍了如何使用Python对NetCDF数据做空间相关分析,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • Python实现聚类K-means算法详解

    Python实现聚类K-means算法详解

    这篇文章主要介绍了Python实现聚类K-means算法详解,K-means(K均值)算法是最简单的一种聚类算法,它期望最小化平方误差,具体详解需要的朋友可以参考一下
    2022-07-07
  • Python实现文件信息进行合并实例代码

    Python实现文件信息进行合并实例代码

    这篇文章主要介绍了Python实现文件信息进行合并实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01

最新评论