+
95
-

回答

在Python中,数据类型可以分为可变类型(mutable)和不可变类型(immutable)。这两种类型的主要区别在于它们的值是否可以在创建后被修改。

不可变类型(Immutable)

不可变类型的对象一旦创建,其值就不能被改变。如果需要修改,实际上是创建了一个新的对象。常见的不可变类型包括:

数字类型

int(整数)float(浮点数)complex(复数)

字符串

str(字符串)

元组

tuple(元组)

冻结集合

frozenset(冻结集合)

布尔值

bool(布尔值)可变类型(Mutable)

可变类型的对象可以在创建后被修改。常见的可变类型包括:

列表

list(列表)

字典

dict(字典)

集合

set(集合)

字节数组

bytearray(字节数组)示例

以下是一些示例,展示了不可变类型和可变类型的区别:

不可变类型示例
# 整数是不可变的
a = 10
print(id(a))  # 输出对象的内存地址
a = a + 1
print(id(a))  # 新的内存地址,因为整数是不可变的

# 字符串是不可变的
s = "Hello"
print(id(s))  # 输出对象的内存地址
s = s + " World"
print(id(s))  # 新的内存地址,因为字符串是不可变的

# 元组是不可变的
t = (1, 2, 3)
print(id(t))  # 输出对象的内存地址
t = t + (4, 5)
print(id(t))  # 新的内存地址,因为元组是不可变的
可变类型示例
# 列表是可变的
lst = [1, 2, 3]
print(id(lst))  # 输出对象的内存地址
lst.append(4)
print(id(lst))  # 相同的内存地址,因为列表是可变的

# 字典是可变的
d = {"a": 1, "b": 2}
print(id(d))  # 输出对象的内存地址
d["c"] = 3
print(id(d))  # 相同的内存地址,因为字典是可变的

# 集合是可变的
s = {1, 2, 3}
print(id(s))  # 输出对象的内存地址
s.add(4)
print(id(s))  # 相同的内存地址,因为集合是可变的

通过这些示例,你可以看到不可变类型在修改时会创建新的对象,而可变类型则可以在原地修改。

网友回复

我知道答案,我要回答