数据类型总结,深浅拷贝

存一个值还是多个值

  1. 一个值:整型,浮点型,字符串
  2. 多个值:列表,元祖,字典,集合

有序 or 无序

  1. 有序:字符串,列表,元祖
  2. 无序:字典,集合

可变 or 不可变

  1. 可变:列表,字典,集合

  2. 不可变:整型,浮点型,字符串

浅拷贝和深拷贝的区别(只针对可变类型)

1.拷贝:

lis = [1,2,3,4]
lis2 = lis
lis.append(5)
print(lis)
print(lis2)

[1, 2, 3, 4, 5]

[1, 2, 3, 4, 5]

2.浅拷贝

import copy

lis = [1,[3, 4]]
lis2 = copy.copy(lis)
print(lis)
print(lis2) lis.append(2)
print(lis)
print(lis2) lis[1].append(5)
print(lis)
print(lis2)

[1, [3, 4]]

[1, [3, 4]]


[1, [3, 4], 2]

[1, [3, 4]]


[1, [3, 4, 5], 2]

[1, [3, 4, 5]]

3.深拷贝

l1 = [1, [2, 3]]
l2 = copy.deepcopy(l1) print(l1)
print(l2) l1.append(2)
print(l1)
print(l2) l1[1].append(5)
print(l1)
print(l2)

[1, [2, 3]]

[1, [2, 3]]


[1, [2, 3], 2]

[1, [2, 3]]


[1, [2, 3, 5], 2]

[1, [2, 3]]

总结:

这些只是一种现象.

拷贝:共用一片内存,l1发生改变则l2也会发生改变,因为l1是可变类型

浅拷贝:另外开辟内存,共用其中元素的地址,当l1内部的不可变对象发生改变时,l2不发生改变,因为该元素的地址变了.当l1内部的可变对象发生了改变时,l2随之改变,因为地址不变

深拷贝;另外开辟内存,共用元素中不可变对象的地址,l1改变,l2不变,两者互相独立,没有太大的关系

day09-3 数据类型总结,深浅拷贝的更多相关文章

  1. 巨蟒python全栈开发-第7天 基本数据类型补充&深浅拷贝

    1.基本数据类型补充 2.深浅拷贝 DAY7-基本数据类型(基本数据类型补充&深浅拷贝) 本节主要内容: 1.补充基础数据类型 (1)join方法 (2)split方法 (3)列表不能在循环时 ...

  2. python之基本数据类型及深浅拷贝

    一.数据基本类型之set集合 set和dict类似,也是一组key的集合,但不存储value.由于key不能重复,所以,在set中,没有重复的key set集合,是一个无序且不重复的元素集合 1.创建 ...

  3. day7 基础数据类型&集合&深浅拷贝

    基础数据类型汇总: #!/usr/bin/env python # -*- coding:utf-8 -*- ''' str int ''' # str s = ' a' print(s.isspac ...

  4. day-06数据类型与深浅拷贝

    深浅拷贝 # 值拷贝:应用场景最多 ls = [1, 'abc', [10]] ls1 = ls # ls1直接将ls中存放的地址拿过来# ls内部的值发生任何变化,ls1都会随之变化 ls2 = l ...

  5. Python【第二篇】运算符及优先级、数据类型及常用操作、深浅拷贝

    一.运算符及优先级 Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 1.算数运算符 运算符 描述 实例,a=20,b=10 + 加 a+b输出结果30 - 减 a-b输出结果 ...

  6. Python 全栈开发十一 深浅拷贝

    深浅拷贝 深浅拷贝的前提: 相等和相同的关系 深浅拷贝针对的是列表等可变的数据类型. 深浅拷贝在普通的列表没有什么意义,只有在嵌套列表,或其他嵌套数据类型才有意义. a = "aaa&quo ...

  7. python基础(7)--深浅拷贝、函数

    1.深浅拷贝 在Python中将一个变量的值传递给另外一个变量通常有三种:赋值.浅拷贝.深拷贝 Python数据类型可氛围基本数据类型包括整型.字符串.布尔及None等,还有一种由基本数据类型作为最基 ...

  8. python内存相关以及深浅拷贝讲解

    3.9 内存相关 3.9.1 id,查看内存地址 >>> v1 = [11,22,33] >>> v2 = [11,22,33] >>> prin ...

  9. Day7--Python--基础数据类型补充,集合,深浅拷贝

    一.基础数据类型补充 1.join() 把列表中的每一项(必须是字符串)用字符串拼接 与split()相反 lst = ["汪峰", "吴君如", " ...

  10. day8数据类型补充,集合,深浅拷贝

    思维导图: 集合的补充:下面的思维导图有一个点搞错了,在这里纠正一下,没有合集,是反交集,^这个是反差集的意思 . 交集&,反交集^,差集-,并集|,然后就是子集和超集 数据类型补充: ''' ...

随机推荐

  1. vc++如何创建程序-构造函数

    如果给Animal带参,则提示没有缺省的构造函数了,缺省就是不带参数的 改进:从子类当中向基类传递代参的,这样他就会给Animal传递400,300 对一个常量来调用 #include<iost ...

  2. Corn Fields 状压动归入门题

    #include<cstdio> using namespace std; const int N=15; int dp[N][1<<N],v[1<<N],M[N] ...

  3. 洛谷P1297 [国家集训队]单选错位_数学期望

    考虑第 iii 位, 那么当前共有 a[i]a[i]a[i] 种选项,那么当前选项正确的情况就是下一个被误填的答案与当前答案相同.换句话说,当前答案一共有 a[i]a[i]a[i] 种可能,而下一个答 ...

  4. C++基础 (1) 第一天 C++相对C的改进 命名空间 引用

    第一天 语法 STL 数据结构  设计模式… 2 C++语言的间接 C++ = C语言+面向对象 本贾尼 语言分类: 不关心效率 只关心架构:java/脚本语言 效率:(内存要自己管理了,操作指针)C ...

  5. Linux 密码的暴力破解

    Linux 的密码的介绍 两个文件 1 . /etc/passwd 2 . /etc/shadow ## 关于/etc/shadow 文件的介绍 1 . 第一个字段是用户名 2 . 第二字字段是加密的 ...

  6. sso 登录业务逻辑

  7. Windows-命令窗口-强制关机命令

    Windows +R CMD  命令行窗口shutdown -s -f -t 以上参数中的-s代表关机,-f表示强制关闭所有应用程序,-t 00代表不用等待立即执行(时间以秒计算,把时间改长就变成了定 ...

  8. servlet3.0理解

    1.servlet是用Java编写的服务器端程序,服务器端程序,服务器端程序. 2.Servlet运行于支持Java的应用服务器中.spring mvc有自己的实现servlet 从原理上讲,Serv ...

  9. HDU 2035 不忍直视的水

    #include <iostream> #include <cstdio> #include <algorithm> using namespace std; in ...

  10. 在不同的浏览器下FORM及它的小伙伴们默认样式的CSS属性值是不全然一致

    我们一般在定义CSS样式的时候都须要定义去掉HTML标签默认样式的CSS,原因是在不同的浏览器以下它们的表现出来的默认样式不全然一致,我们要保证在不同的浏览器下它们能正常显示出我们想要达到的预期效果, ...