python数据类型可变不可变知识点总结

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

在Python中,数据类型可以分为可变和不可变两种。可变数据类型是指改变其值后,其在内存中的地址不会发生改变的数据类型;不可变数据类型是指改变其值后,其在内存中的地址会发生改变的数据类型。

Python中的不可变数据类型有:数值型(int、float、bool、complex)、字符串(str)、元组(tuple);可变数据类型有:列表(list)、字典(dict)、集合(set)。

2. 不可变数据类型

2.1 数值型

数值型是指数值类型的数据,包括整数(int)、浮点数(float)、布尔型(bool)和复数(complex)。

数值型的特点是不可修改,即改变数值型变量的值会生成一个新的对象。

a = 5

b = a

a = 10

print(b) # 5

上述代码中,a的值改变后,b的值没有改变。

2.2 字符串

字符串是由字符组成的不可变序列。改变字符串的值会生成一个新的字符串对象。

s = 'Hello'

t = s

s = 'World'

print(t) # Hello

上述代码中,s的值改变后,t的值没有改变。

2.3 元组

元组是由多个元素组成的序列类型,具有不可变性。

t1 = (1, 2, 3)

t2 = t1

t1 = (4, 5, 6)

print(t2) # (1, 2, 3)

上述代码中,t1的值改变后,t2的值没有改变。

3. 可变数据类型

3.1 列表

列表是有序的、可变的、允许重复的数据集合。

l1 = [1, 2, 3]

l2 = l1

l1.append(4)

print(l2) # [1, 2, 3, 4]

上述代码中,对l1的操作也影响了l2。

3.2 字典

字典是无序的、可变的、键值对的集合。

d1 = {'name': 'Alice', 'age': 20}

d2 = d1

d1['age'] = 21

print(d2) # {'name': 'Alice', 'age': 21}

上述代码中,对d1的操作也影响了d2。

3.3 集合

集合是无序的、不重复的集合,在集合中添加、删除、修改元素。

s1 = {1, 2, 3}

s2 = s1

s1.add(4)

print(s2) # {1, 2, 3, 4}

上述代码中,对s1的操作也影响了s2。

4. 总结

在Python中,可变数据类型是指其值可以改变而内存地址不变的数据类型,包括列表、字典和集合;不可变数据类型是指改变其值后其内存地址改变的数据类型,包括数值型、字符串和元组。

对于可变数据类型,改变其值后不会生成新的对象,而是在原有对象的基础上进行修改;对于不可变数据类型,改变其值会生成一个新的对象。

在实际开发中,我们需要根据情况来选择使用可变数据类型还是不可变数据类型。可变数据类型的主要优势是可以直接在原始数据上进行修改,而不需要创建新的对象,提高了性能。不可变数据类型的主要优势是更安全,可以避免对数据的非预期更改。

因此,在使用过程中需要根据实际情况选择不同的数据类型,以提高程序的效率和安全性。

后端开发标签