Python变量的复制

dic = {'a': 1}
dic_fake_copy = dic
dic_fake_copy.update({'b': 2})
print 'dic_fake_copy = %s' % dic_fake_copy
print 'dic = %s' % dic

输出结果为:

In [6]: print 'dic_fake_copy = %s' % dic_fake_copy
dic_fake_copy = {'a': 1, 'b': 2}In [7]: print 'dic = %s' % dic
dic = {'a': 1, 'b': 2}

dic_fake_copy = dic并没有在内存中重新创建了dict,只是将dic的地址复制给dic_fake_copy。所以对dic_fake_copyupdate也就是对dicupdate
dic_copy = dic.copy()可以解决这个问题。

dic = {'a': 1}
dic_copy = dic.copy()
dic_copy.update({'b': 2})
print 'dic_copy = %s' % dic
print 'dic = %s' % dic

输出结果为:

In [11]: print 'dic_copy = %s' % dic_copy
dic_copy = {'a': 1, 'b': 2}In [12]: print 'dic = %s' % dic
dic = {'a': 1}

在函数传参时会出现类似的情况

def func(param):print 'param before update: %s' % paramparam.update({'b': 2})print 'param after update: %s' % paramdic = {'a': 1}
func(dic)
print dic

输出结果为:

param before update: {'a': 1}
param after update: {'a': 1, 'b': 2}
{'a': 1, 'b': 2}

dic的值发生了改变。
解决方法是在调用func前先dic_copy = dic.copy()

转载于:https://www.cnblogs.com/Coder816/p/4714605.html

Python变量的复制相关推荐

  1. 消除python变量的值_SPSS变量值标签的批量设置、复制、显示及删除问题

    在SPSS的变量设置中,值标签是对变量可能取值的注释说明.当我们需要给很多个变量设置相同的值标签时,该如何操作?例如,在很多调查问卷中,采用里克特量表设计,因此这些题目都采用相同的选项评分方法,例如1 ...

  2. CrazyWing:Python自动化运维开发实战 四、Python变量

    导语: 1.什么是变量 2.变量名称的命名 3.变量赋值 4.变量存储数据的方式 5.引用计数 什么是变量: python学习过程中会用到许多数据,那为了方便操作,需要把这些数据分别用一个简单的名字代 ...

  3. python class 是否存在某个变量_一文抵十课,考验你的Python变量是否理解透彻了

    变量是编程的基础概念,Python 的变量也看似很简单,但是如果理解不当,生搬硬套,可能会遇到一些麻烦. 下面用 10 个代码示例展示 Python 的 变量 本质. 快来看看你对 Python 的变 ...

  4. python中怎么复制代码_Python对象怎么引用_Python对象怎么复制代码_一聚教程网

    本次文章要给大家讲解的是Python对象引用及复制代码,相信这也是大家问题比较大的一个点,下面为大家具体整理了操作过程,一起来了解下. 可以说Python没有赋值,只有引用.你这样相当于创建了一个引用 ...

  5. python中有那几种赋值_详解Python列表赋值复制深拷贝及5种浅拷贝

    概述 在列表复制这个问题,看似简单的复制却有着许多的学问,尤其是对新手来说,理所当然的事情却并不如意,比如列表的赋值.复制.浅拷贝.深拷贝等绕口的名词到底有什么区别和作用呢? 列表赋值 # 定义一个新 ...

  6. python 变量使用进阶

    python 变量使用进阶 文章目录 python 变量使用进阶 什么是变量的作用域? 作用域的产生 作用域的类型 **变量名解析LEGB法则** global与nonlocal关键字 python针 ...

  7. C++实现Python变量

    C++ 变量也能像python变量一样使用---再也不用担心内存泄露---让malloc/free,new/delete见鬼去吧 仔细想想,其实所有分配在栈和静态存储区的存储空间都是由一个变量来标识, ...

  8. 一万字全网最全的“Python变量和简单数据类型知识”,干货满满

    第二章:Python变量和简单数据类型 在本章中,你将学习可在Python程序中使用的各种数据,还将学习如何在程序 中使用变量来表示这些数据. 2.1 运行hello_world.py时发生的情况 运 ...

  9. Python变量类型(l整型,长整形,浮点型,复数,列表,元组,字典)学习

    #coding=utf-8 __author__ = 'Administrator'#Python变量类型#Python数字,python支持四种不同的数据类型 int整型 long长整型 float ...

最新文章

  1. python redis连接池获取后关闭_python通过连接池连接redis,操作redis队列
  2. 人工智能“上位”会让程序员消失吗?
  3. 蓝桥杯练习系统习题-算法训练6
  4. AAAI2021论文合集汇总!(持续更新)
  5. 答应我不要问TCP三次握手四次挥手
  6. mysql执行存储过程提示out of_PHP执行MYSQL存储过程报错:Commands out of sync; you can't run...
  7. 计算机兴趣班记录,计算机兴趣班活动记录.doc
  8. ftfind 桌面搜索引擎的设计文档 (2)
  9. Windows下安装GitHub客户端
  10. mysql .pem 文件_对于https ssl中的pem文件和key 文件的理解
  11. Windows 10 下如何显示文件的后缀名
  12. DJ8-2 主存储器的组织
  13. 闽南师范大学计算机科学学院副书记,CCF闽南师范大学学生分会完成换届
  14. WebLogic之WebLogic安装
  15. DBlink 入门案例
  16. 2017年由Unity员工打造的最爱
  17. 理解UVM中的virtual sequencer和virtual sequence
  18. 疯狂python_疯狂 python
  19. 百度,360,淘宝,腾讯,高通中国,htc上海 Android 面试题
  20. Scratch二次开发:关于增加的扩展导出sb3文件后,导入文件失败问题

热门文章

  1. ASP.NET 文件上传于下载
  2. 浏览器打不开html链接,win7系统ie浏览器打不开网站链接怎么办
  3. STM32通用定时器输出PWM控制舵机 —— 重装载值、比较值、当前值
  4. 安卓APP_ 布局(7) —— ViewPager翻页
  5. 全国计算机等级考试题库二级C操作题100套(第81套)
  6. 全国计算机等级考试题库二级C操作题100套(第01套)
  7. mysql 日期查询今天_Mysql 日期查询今天、昨天、近7天、近30天、本月、上一月、本季...
  8. 软件推荐:微软桌面助手软件上手体验
  9. SQLServer基础:Apply关键字用法介绍
  10. Javascript对象及数组用法笔记