首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型。可变数据类型:列表list和字典dict;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。

用一句话来概括上述过程就是:“python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

不可变数据类型代码示例:

 1 a = 1
 2 b = 1
 3
 4 def func():
 5     c = 1
 6     print(id(c))
 7
 8
 9 func()
10 print(id(a),"       ",id(b))
11 #打印的三个id 都是一样的
12
13 b = 3
14 print(id(b))  #当b的值改变后,id值就改变了

可变数据类型代码示例:

1 a = [1,2,3]
2 print(id(a))
3
4 a.append(5)
5 print(id(a))
6
7 #修改列表后打印的值还是一眼的

对于全局可变数据类型,函数内部是直接可以修改和查看的:

1 a = [1,2,3,4,5]
2
3 def func():
4     a[3] = 8  #对于可变数据类型,可以在函数内部直接修改
5
6 func()
7 print(a)

对于不可变数据类型,在函数内部只能查看不能直接修改,如果要修改,需要借助于 global 声明:

示例1:

1 a = 1
2 def func():
3     print(a)   #可以查看
4     a += 1     #但是不能直接修改外部全局变量  这一句报错
5 func()

示例2:(修改示例1)

1 a = 1
2 def func():
3     global a
4     print(a)
5     a += 1
6 func()
7 print(a)   #a 的值已经被改变

转载于:https://www.cnblogs.com/luojianyi/p/9573742.html

Python中可变数据类型和不可变数据类型相关推荐

  1. python中遍历结构可以是哪些数据类型_全!Python基础之原生数据类型、判断和循环、函数和文件操作合集...

    长文预警! Python基础系列会将基础内容大致分为三到五个板块,每块着重讲一方面,知识不会很难,主要是以小例子的形式解读,如果你已经入门Python,希望可以帮你温习一下:如果你想入门Python, ...

  2. Python中的list/tuple/dict/set数据类型详解

    Python中的list/tuple/dict/set数据类型详解 Python内部内置了一些数据类型与结构,可以方便在编程时候的使用. list List存储一系列的有序集合,并且元素内容可变(可更 ...

  3. python中可以作为定界符_在Python中,字符串属于不可变有序序列,使用单引号、双引号、三单引号或三双引号作为定界符,并且不同的定界符之间可以互相嵌套。...

    在Python中,字符串属于不可变有序序列,使用单引号.双引号.三单引号或三双引号作为定界符,并且不同的定界符之间可以互相嵌套. 下述哪种光谱法是基于发射原理()?A:分光光度法B:荧光光度法C:红外 ...

  4. python中整数类型有—3_Python3 基本数据类型(3)

    Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对 ...

  5. python包括几种数据类型_简单谈谈Python中的几种常见的数据类型

    计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数 ...

  6. python中bd是什么属性_python数据类型及其特有方法

    一.运算符 in方法 "hello" in "abcdefghijklmnopqrstuvwxyz" "li" in ["gg&q ...

  7. 在python中、int表示的是数据类型是_Python3基本数据类型之intstr

    python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对 ...

  8. python中列表的元素是什么数据类型_python基本数据类型之列表和元组(一)

    python基本数据类型之列表与元组(一) python中list与tuple都是可以遍历类型.不同的是,list是可以修改的,而元组属于不可变类型,不能修改. 列表和元组中的元素可以是任意类型,并且 ...

  9. python中的变量、Debug和数据类型

    1. 变量的作⽤         程序中,数据都是临时存储在内存中,为了更快速的查找或使⽤这个数据,通常我们把这个数据在内存中存储之后定义⼀个名称,这个名称就是变量.         变量就是⼀个存储 ...

  10. Python中函数的参数传递与可变长参数

    1.Python中也有像C++一样的默认缺省函数 1 def foo(text,num=0): 2 print text,num 3 4 foo("asd") #asd 0 5 f ...

最新文章

  1. 微信支付服务器demo,集成微信支付(附带demo)
  2. Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含……。编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间
  3. 计算机网络:05---网络类型:局域网、城域网、广域网、个域网、无线网络
  4. [ios2]苹果iOS 5限制应用本地存储问题 【转】
  5. html文本框样式大全,HTML文本框样式大全
  6. 颜宁问4对科研夫妻:男女搭配,如何不累?
  7. 劳务费计算用matlab实现
  8. 关于ExtJs4的Grid带 查询 参数 分页(baseParams--extraParams)
  9. Expression.Blend.4 Chapter 图片和视频的使用
  10. wpf之访问当前程序下的图片
  11. bash脚本编程之十 函数
  12. 【毕业设计】毕业设计选题指南
  13. 电子/自动化专业常用软件介绍
  14. Pr:图形与基本图形面板
  15. 阿里月饼事件被辞程序员冤吗?
  16. qt中xxx.pro:64: error: Extra characters after test expression.
  17. 前端开发--箭头函数
  18. Impala String函数大全
  19. python的try语句
  20. lua生成随机数,设置随机数种子

热门文章

  1. java new thread参数_java线程池01-ThreadPoolExecutor构造方法参数的使用规则
  2. java文件名大小_java 比较指定文件夹内.txt文件名的大小
  3. python的主要功能_Python的主要功能是什么?
  4. python画爱心原理_程序员式优雅表白,教你用python代码画爱心
  5. golang 线程 Java线程_Golang 学习笔记(06)—— 多线程
  6. layuiAdmin打开新窗口、新标签页
  7. 公务员考试中的计算机知识点,2021年度公务员考试计算机基础知识试题.doc
  8. php输出查询mysql中文乱码_解决php mysql查询插入中文乱码问题
  9. 零拷贝和java NIO
  10. echarts词云图形状_用Python 3.8绘制词云图就这么20行代码