python_可变类型和不可变数据类型

1. 可变类型和不可变数据类型

在Python中,数据类型可以分为可变类型和不可变数据类型。可变类型指的是该类型的值可以被修改,不可变数据类型则指的是该类型的值不可被修改。

2. 不可变数据类型

2.1 数字类型

数字类型是不可变数据类型的一种常见类型。它包括整数、浮点数和复数。当我们对一个数字类型变量进行赋值操作时,实际上是创建了一个新的对象,而不是修改原对象的值。

num1 = 10

num2 = num1

num1 = 20

print("num1:", num1) # 输出结果为:num1: 20

print("num2:", num2) # 输出结果为:num2: 10

在上述代码中,我们首先将num1赋值为10,然后将num2赋值为num1。接着,将num1的值修改为20。由于数字类型是不可变的,所以num1的修改并不会影响到num2。

2.2 字符串类型

字符串类型也属于不可变数据类型。当我们对一个字符串类型变量进行修改时,实际上是创建了一个新的字符串对象,而不是修改原对象的值。

str1 = "Hello"

str2 = str1

str1 = "Hi"

print("str1:", str1) # 输出结果为:str1: Hi

print("str2:", str2) # 输出结果为:str2: Hello

在上述代码中,我们首先将str1赋值为"Hello",然后将str2赋值为str1。接着,将str1的值修改为"Hi"。由于字符串类型是不可变的,所以str1的修改并不会影响到str2。

3. 可变类型

3.1 列表类型

列表是一种常见的可变类型,它可以存储多个元素,并且可以根据需要进行修改。

list1 = [1, 2, 3]

list2 = list1

list1.append(4)

print("list1:", list1) # 输出结果为:list1: [1, 2, 3, 4]

print("list2:", list2) # 输出结果为:list2: [1, 2, 3, 4]

在上述代码中,我们首先将list1赋值为[1, 2, 3],然后将list2赋值为list1。接着,使用append方法向list1中添加元素4。由于列表类型是可变的,所以list1的修改会影响到list2。

3.2 字典类型

字典类型也是一种可变类型,它可以存储键值对,并且可以根据需要进行修改。

dict1 = {"name": "John", "age": 20}

dict2 = dict1

dict1["age"] = 21

print("dict1:", dict1) # 输出结果为:dict1: {'name': 'John', 'age': 21}

print("dict2:", dict2) # 输出结果为:dict2: {'name': 'John', 'age': 21}

在上述代码中,我们首先将dict1赋值为一个字典。然后将dict2赋值为dict1。接着,修改dict1中键"age"对应的值为21。由于字典类型是可变的,所以dict1的修改会影响到dict2。

3.3 集合类型

集合类型也是一种可变类型,它可以存储多个元素,并且可以根据需要进行修改。

set1 = {1, 2, 3}

set2 = set1

set1.add(4)

print("set1:", set1) # 输出结果为:set1: {1, 2, 3, 4}

print("set2:", set2) # 输出结果为:set2: {1, 2, 3, 4}

在上述代码中,我们首先将set1赋值为一个集合。然后将set2赋值为set1。接着,使用add方法向set1中添加元素4。由于集合类型是可变的,所以set1的修改会影响到set2。

4. 总结

Python中的数据类型可以分为可变类型和不可变数据类型。不可变数据类型的值不可被修改,而可变类型的值可以被修改。其中,数字类型和字符串类型属于不可变数据类型,而列表类型、字典类型和集合类型属于可变类型。了解这些数据类型的特点以及它们的可变性对于编写高效的Python代码非常重要。

后端开发标签