Python之可变数据类型和不可变数据类型

不可变数据类型

数字number(含int、float、bool、complex)、字符串string、元组tuple。

在同一代码块下,不同变量的值若是相同且是不可变数据类型,那么它们的id也相同,实际上它们都是同一个值的引用,这既节省了内存又提高了运行效率。举例:

num1=1000
num2=1000
print(id(num1),id(num2))

out:
2321267850064 2321267850064

需要注意的是,在REPL交互环境下输出结果不一致,这是因为在REPL交互环境每行代码都是独立的代码块。

>>> num1=1000
>>> num2=1000
>>> print(id(num1),id(num2))
2404872583088 2404872583472

可变数据类型

列表list、字典dict、集合set。

不同变量的值若是相同且是可变数据类型,那么它们的id必不同,它们不能是同一个值的引用。

举例:

>>> List1=[1,2,3]
>>> List2=[1,2,3]
>>> print(id(List1),id(List2))
2311885997568 2311885997696
>>> print(List1==List2)
True

分清楚可变数据类型和不可变数据类型相当重要,这是理解python的变量创建、释放、删除、深拷贝、浅拷贝等一系列概念前提。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注