Python基础(深、浅拷贝)

深、浅拷贝

基础:对象,引用,可变与可变

对于不可变的对象,如字符串、元组、数字深浅拷贝没有什么意义。

1、浅拷贝

浅拷贝只拷贝第一层对象(拷贝的实际是一个框子,拷贝过去的框子是不会变的,但是原先的框子里面有可变的对象,修改里面的框子是会发生变化的

>>> import copy
>>> a = [1,2,[1,2],3]
>>> b = copy.copy(a)

>>> b              #b拷贝的是a的第一层框子
[1, 2, [1, 2], 3]

>>> a.append(4)        #a对象发生了更改,b对象并没有发生了改变
>>> b
[1, 2, [1, 2], 3]

>>> a
[1, 2, [1, 2], 3, 4]

>>> a[2].append(3)
>>> a
[1, 2, [1, 2, 3], 3, 4] 

>>> b
[1, 2, [1, 2, 3], 3]
>>>
时间: 2024-10-27 14:01:27

Python基础(深、浅拷贝)的相关文章

Python之路【第二篇】:Python基础

参考链接:老师 BLOG : http://www.cnblogs.com/wupeiqi/articles/4906230.html 入门拾遗 一.作用域 只要变量在内存中就能被调用!但是(函数的栈有点区别) 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 if 1==1: 2 name = 'tianshuai' 3 print name 所以下面的说法是不对的: 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result =

Python基础(二)

Python基础(二) Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典.set集合) for 循环 enumrate range和xrange 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483

Python之路【第二篇】:Python基础(一)

Python之路[第二篇]:Python基础(一) 入门知识拾遗 一.作用域 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. 1 2 3 if 1==1:     name = 'wupeiqi' print  name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 1 result = 值1 if 条件 else 值2 如果条件为真:result = 值1如果条件为假:result = 值2 三.进制 二进制,01 八进

python基础之字典及字符

python基础之字典及字符串处理 本节内容 字典介绍及内置方法 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者

Python基础教程【读书笔记】 - 2016/7/19

希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第八波:第4章  字典:当索引不好用时 将学到一种通过名字引用值的数据结构,这种结构类型称为映射mapping.字典是Python内唯一内建的映射类型.字典中的值并没有特殊的顺序,都是存储在一个特定的键key里.键可以使 数字.字符串甚至是元组. [4.1] 字典的使用 字典有时比列表更加使用. [4.2] 创建和使用字典 字典由多个键及其对应的值构成的对组成(也把键/值对称为项).每个键和它的值之间用冒号隔开,项之

python基础学习笔记-0

python中数据结构,主要有列表.元组.字典.集合. python中最基本数据结构是序列(sequence).序列中每个元素被分配一个序号——即元素位置,也成为索引.第一个索引是0,第二个是1,以此类推. python包含6种内建序列,其他内建序列类型有字符串.unicode字符串.buffer对象和range对象. python之中还有一种名为容器(container)的数据结构.容器基本上是包含其他对象的任意对象.序列(例如列表和元组)和映射(例如字典)是两类主要的容器.序列中每个元素都有

python基础3

一.pyc文件 1.前提 编写auth.py模块,新建test.py文件引用auth.py文件--运行test.py文件之后会生成auth.pyc文件 不同版本的区别 python2:生成的__pycache__ 文件夹.ahtu.pyc文件 python3:生成的pyc文件,名称修改为:auth.cpython-35.pyc,并且是直接在__pycache__ 文件夹里面的           2.python是一门解释型语言? 我初学python时,听到的关于python的第一句话就是,py

Python基础(三)

Python基础(三) 深浅拷贝 函数(全局与局部变量) 内置函数 文件处理 三元运算 lambda 表达式 递归(斐波那契数列) 冒泡排序 深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy #定义变量   数字.字符串 n1 = 123 #n1 = 'nick' print(id(n1))   #赋值 n2 = n1 print(id(n2))   #浅拷贝 n3 = copy.copy(n1) pri

python基础9 列表,元组操作

本节内容: 1 列表 2 元组 3 参考网页 列表 Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作. 定义列表 names = ['Michael', 'Bob', 'Tracy'] 访问列表 通过索引访问 通过下标访问列表中的元素,下标从0开始计数. 使用索引时,千万注意不要越界. >>> names[0] 'Michael' >>