可变与不可变类型

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可以变现描述性含义。

四、小结

  个体值直接赋值的变量类型,因为其本身成一体,所以修改了值就等于是另外一个不同的值,因而这样类型的变量都为不可变类型。而容器类型的变量,因为其含多个元素,可以单独对某个元素进行增删修改处理,所以个体元素的修改只是改变了列表的值本身,没有新赋值给列表。

 

以上是关于可变与不可变类型的主要内容,如果未能解决你的问题,请参考以下文章

可变与不可变类型

Python基础--可变数据类型与不可变数据类型

可变与不可变类型

可变类型与不可变类型的作用和意义

python —— 可变与不可变类型

可变与不可变类型