可变与不可变类型
Posted caoyu080202201
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可变与不可变类型相关的知识,希望对你有一定的参考价值。
一、定义
1、不可变类型:值改变,id也变了,证明产生的是新值,没有改变原值,原值不可被修改。
2、可变类型:值改变,而id没变,证明改的是原值,原值可被修改。
二、归类
1、不可变类型:int、float、str、bool。这些类型的值都是不可分割的整体,不能被修改。
a = 10 print(id(a)) a = 11 print(id(a)) # 两次id不同,float,str,bool同理
2、可变类型:如,list,dict。这些类型可单独对其值进行修改而不是新赋值给变量名,此时变量值虽被修改,但是id没变。
l = [111,222,333] print(id(l)) l[0] = 444 print(id(l)) # 两次id相同,dict同理
三、列表的key类型限制
key必须是不可变类型:原则上int、float、str、bool都可以,但是多用str,因为只有str可以变现描述性含义。
四、小结
个体值直接赋值的变量类型,因为其本身成一体,所以修改了值就等于是另外一个不同的值,因而这样类型的变量都为不可变类型。而容器类型的变量,因为其含多个元素,可以单独对某个元素进行增删修改处理,所以个体元素的修改只是改变了列表的值本身,没有新赋值给列表。
以上是关于可变与不可变类型的主要内容,如果未能解决你的问题,请参考以下文章