首页常见问题正文

如何区别可变数据类型和不可变数据类型?

更新时间:2023-05-15 来源:黑马程序员 浏览量:

IT培训班

  在Python中,数据类型分为可变和不可变两种类型。简单来说,可变数据类型是可以在原地修改的,而不可变数据类型则不能直接修改,只能通过重新创建一个新的对象来实现修改。

  下面是一些常见的Python数据类型,以及它们是可变还是不可变的:

  一、不可变数据类型:

  1.数字类型 (int, float, complex)

  2.字符串类型 (str)

  3.元组类型 (tuple)

  4.冻结集合类型 (frozenset)

  二、可变数据类型:

  1.列表类型 (list)

  2.字典类型 (dict)

  3.集合类型 (set)

  可以通过一些简单的代码演示来说明可变和不可变数据类型的区别:

# 不可变数据类型
a = 5
b = a
a = a + 1
print(a)  # 输出 6
print(b)  # 输出 5,b并没有被修改

s1 = "hello"
s2 = s1
s1 = s1 + " world"
print(s1)  # 输出 "hello world"
print(s2)  # 输出 "hello",s2并没有被修改

t1 = (1, 2, 3)
t2 = t1
# 尝试修改元组
# t1[0] = 4  # 这行代码会抛出 TypeError 异常,因为元组是不可变的

# 可变数据类型
lst1 = [1, 2, 3]
lst2 = lst1
lst1.append(4)
print(lst1)  # 输出 [1, 2, 3, 4]
print(lst2)  # 输出 [1, 2, 3, 4],lst2也被修改了

d1 = {"name": "Alice", "age": 30}
d2 = d1
d1["age"] = 31
print(d1)  # 输出 {"name": "Alice", "age": 31}
print(d2)  # 输出 {"name": "Alice", "age": 31},d2也被修改了

  我们可以看到,对于不可变数据类型,赋值给另一个变量后,对原变量的修改不会影响到另一个变量;而对于可变数据类型,赋值给另一个变量后,对原变量的修改会影响到另一个变量。

分享到:
在线咨询 我要报名
和我们在线交谈!