面试别再被问倒Python中的可变数据类型和不可变数据类型

面试别再被问倒Python中的可变数据类型和不可变数据类型,第1张

概述一、数据类型汇总(红色为可变的)整数int浮点数float布尔类型bool数字(int和float)字符串str列表list元组tuple字典dict日期date二、可变数据类型定义:当你第一次赋值声明了一个可变数据类型的时候,会在内存中开辟一个空间,并且将你所赋的数据值放在这块内存中, @H_419_4@一、数据类型汇总

(红色为可变的)

整数 int浮点数 float布尔类型 bool数字 (int和float)字符串 str列表 List元组 tuple字典 dict日期 date@H_419_4@二、可变数据类型

定义:当你第一次赋值声明了一个可变数据类型的时候, 会在内存中开辟一个空间, 并且将你所赋的数据值放在这块内存中, 然后将这个变量指向数据所在的内存所在位置, 不同的是, 可变数据类型可以对内存中的数据进行修改, 并且不会导致变量引用地址的变化, 但是这种修改仅限于Python中的内置方法, 比如List.append(), List.remove(), dict.pop(), dict.clear()等。

1、列表 List

#创建一个列表LL=[1,2,3,4]print(L)print(ID(L))#新增一个元素5后,查看内存L.append(5)print(L)print(ID(L))


总结:在这里我们是可以看到列表元素增加后,但是内存空间是没有发生改变的,所以列表是可变的数据类型。


2、字典 dict

#创建一个字典dictdict={"我":"靓仔","你":"老板"}print(dict)print(ID(dict))# #增加字典键值,查看内存dict["别人"]="吊毛"print(dict)print(ID(dict))#改变里面值,查看内存dict["你"]="吊毛"print(dict)print(ID(dict))


总结:在这里我们是可以看到字典也是一样,键值对发生改变后,但是内存空间是没有发生改变的,所以字典是可变的数据类型。

@H_419_4@三、不可变数据类型

定义:不可变数据类型在第一次声明赋值声明的时候, 会在内存中开辟一块空间, 用来存放这个变量被赋的值, 存放这个值的内存空间就是内存中的一个地址, 而这个变量实际上存储的, 并不是被赋予的这个值, 而是存放这个值所在空间的内存地址, 通过这个地址, 变量就可以在内存中取出数据了. 所谓不可变就是说, 我们不能改变这个数据在内存中的值, 所以当我们改变这个变量的赋值时, 只是在内存中重新开辟了一块空间, 将这一条新的数据存放在这一个新的内存地址里, 而原来的那个变量就不在引用原数据的内存地址而转为引用新数据的内存地址了.


1、整数 (int)、浮点数(float)、数字

#创建一个整数、浮点数、数字a=10b=20.22print(ID(a))print(ID(b))a=20b=20.44print(ID(a))print(ID(b))


总结:在这里我们是可以看到,数字等发生改变后,内存空间也发生改变,说明数字等类型是不可变的数据类型。

2、字符串 (str)

#创建一个字符串str="a","b","c"print(str)print(ID(str))#拼接一个字符串Str="d","e"str=str+Strprint(str)print(ID(str))


总结:在这里我们是可以看到,字符串发生拼接改变后,内存空间也发生改变,说明字符串类型是不可变的数据类型。


3、元组 (teple)
总结:元组本来就是不可变类型(元组主要用来读取,不能修改)。


4、布尔类型 (bool)

#创建布尔类型bo=Trueprint(ID(bo))bo=Falseprint(ID(bo))


总结:布尔类型内存空间发生了改变,说明是不可变的


5、日期 (date)

创建date,导入日期包import datetimeTime=datetime.date.today()print(Time)print(ID(Time))Time=datetime.date.today()print(Time)print(ID(Time))


总结:日期类型内存空间发生了改变,说明是不可变的

好记性不如烂笔头
,每天记忆一点点。 (忘记了还可以回来捡起来,诶嘿嘿,)

总结

以上是内存溢出为你收集整理的面试别再被问倒Python中的可变数据类型和不可变数据类型全部内容,希望文章能够帮你解决面试别再被问倒Python中的可变数据类型和不可变数据类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1188421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存