Python中可变数据类型和不可变数据类型
首先,我们需要知道在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中可变数据类型和不可变数据类型相关推荐
- python中遍历结构可以是哪些数据类型_全!Python基础之原生数据类型、判断和循环、函数和文件操作合集...
长文预警! Python基础系列会将基础内容大致分为三到五个板块,每块着重讲一方面,知识不会很难,主要是以小例子的形式解读,如果你已经入门Python,希望可以帮你温习一下:如果你想入门Python, ...
- Python中的list/tuple/dict/set数据类型详解
Python中的list/tuple/dict/set数据类型详解 Python内部内置了一些数据类型与结构,可以方便在编程时候的使用. list List存储一系列的有序集合,并且元素内容可变(可更 ...
- python中可以作为定界符_在Python中,字符串属于不可变有序序列,使用单引号、双引号、三单引号或三双引号作为定界符,并且不同的定界符之间可以互相嵌套。...
在Python中,字符串属于不可变有序序列,使用单引号.双引号.三单引号或三双引号作为定界符,并且不同的定界符之间可以互相嵌套. 下述哪种光谱法是基于发射原理()?A:分光光度法B:荧光光度法C:红外 ...
- python中整数类型有—3_Python3 基本数据类型(3)
Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对 ...
- python包括几种数据类型_简单谈谈Python中的几种常见的数据类型
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数 ...
- python中bd是什么属性_python数据类型及其特有方法
一.运算符 in方法 "hello" in "abcdefghijklmnopqrstuvwxyz" "li" in ["gg&q ...
- 在python中、int表示的是数据类型是_Python3基本数据类型之intstr
python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对 ...
- python中列表的元素是什么数据类型_python基本数据类型之列表和元组(一)
python基本数据类型之列表与元组(一) python中list与tuple都是可以遍历类型.不同的是,list是可以修改的,而元组属于不可变类型,不能修改. 列表和元组中的元素可以是任意类型,并且 ...
- python中的变量、Debug和数据类型
1. 变量的作⽤ 程序中,数据都是临时存储在内存中,为了更快速的查找或使⽤这个数据,通常我们把这个数据在内存中存储之后定义⼀个名称,这个名称就是变量. 变量就是⼀个存储 ...
- Python中函数的参数传递与可变长参数
1.Python中也有像C++一样的默认缺省函数 1 def foo(text,num=0): 2 print text,num 3 4 foo("asd") #asd 0 5 f ...
最新文章
- 微信支付服务器demo,集成微信支付(附带demo)
- Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含……。编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间
- 计算机网络:05---网络类型:局域网、城域网、广域网、个域网、无线网络
- [ios2]苹果iOS 5限制应用本地存储问题 【转】
- html文本框样式大全,HTML文本框样式大全
- 颜宁问4对科研夫妻:男女搭配,如何不累?
- 劳务费计算用matlab实现
- 关于ExtJs4的Grid带 查询 参数 分页(baseParams--extraParams)
- Expression.Blend.4 Chapter 图片和视频的使用
- wpf之访问当前程序下的图片
- bash脚本编程之十 函数
- 【毕业设计】毕业设计选题指南
- 电子/自动化专业常用软件介绍
- Pr:图形与基本图形面板
- 阿里月饼事件被辞程序员冤吗?
- qt中xxx.pro:64: error: Extra characters after test expression.
- 前端开发--箭头函数
- Impala String函数大全
- python的try语句
- lua生成随机数,设置随机数种子
热门文章
- java new thread参数_java线程池01-ThreadPoolExecutor构造方法参数的使用规则
- java文件名大小_java 比较指定文件夹内.txt文件名的大小
- python的主要功能_Python的主要功能是什么?
- python画爱心原理_程序员式优雅表白,教你用python代码画爱心
- golang 线程 Java线程_Golang 学习笔记(06)—— 多线程
- layuiAdmin打开新窗口、新标签页
- 公务员考试中的计算机知识点,2021年度公务员考试计算机基础知识试题.doc
- php输出查询mysql中文乱码_解决php mysql查询插入中文乱码问题
- 零拷贝和java NIO
- echarts词云图形状_用Python 3.8绘制词云图就这么20行代码