目录
在Python中,数据类型可以分为可变(mutable)和不可变(immutable)两大类。本文将介绍常见的几种可变和不可变数据类型,并通过示例展示它们的不同特性。
一、不可变数据类型
不可变数据类型一旦创建,其内容不能被修改。修改这些数据类型时,实际上会创建一个新的对象。—— 重新赋值意味着重新创建了一个新的对象(变量),不会修改原变量的值。
常见的不可变数据类型包括:整数(int)、浮点数(float)、布尔值(bool)、元组(tuple)等。
1. 整数(int)
整数是不可变的。这意味着你不能修改一个整数的值。如果你尝试改变它的值,Python会创建一个新的整数对象。
```python
x = 5
x = x + 1 # 这里实际上是创建了一个新的整数对象,而不是修改原有的5
print(x) # 输出: 6
```
2. 浮点数(float)
浮点数与整数类似,也是不可变的。当你对浮点数进行运算时,Python会创建一个新的浮点数对象。
```python
f = 3.14
f = f + 1.0 # 这实际上是创建了一个新的浮点数对象,而不是修改原有的3.14
print(f) # 输出: 4.14
```
3. 布尔值(bool)
布尔值True和False是不可变的。修改布尔值时,实际上是重新赋值。
```python
b = True
b = False # 这里是重新赋值,而不是修改原有的True
print(b) # 输出: False
```
4. 元组(tuple)
元组是不可变的序列类型。一旦创建,元组中的元素就不能修改。
```python
t = (1, 2, 3)
# 尝试修改元组中的元素会引发错误
t[0] = 10 # 会报错:TypeError: 'tuple' object does not support item assignment
```
二、可变数据类型
可变数据类型的内容可以被修改。你可以直接修改、添加或删除其中的元素。
常见的可变数据类型包括:列表(list)、字典(dict)、集合(set)等。
1. 列表(list)
列表是可变的,你可以修改列表中的元素,添加新的元素或删除已有的元素。
```python
lst = [1, 2, 3]
lst[0] = 10 # 修改列表中的第一个元素
lst.append(4) # 添加新元素
lst.remove(2) # 删除元素
print(lst) # 输出: [10, 3, 4]
```
2. 字典(dict)
字典是另一种可变数据类型。你可以修改字典中的值,添加新的键值对,或者删除已有的键值对。
```python
d = {"a": 1, "b": 2}
d["a"] = 10 # 修改字典中的值
d["c"] = 3 # 添加新的键值对
del d["b"] # 删除一个键值对
print(d) # 输出: {'a': 10, 'c': 3}
```
3. 集合(set)
集合是一个无序的可变数据类型,你可以向集合中添加或删除元素。
```python
s = {1, 2, 3}
s.add(4) # 添加元素
s.remove(2) # 删除元素
print(s) # 输出: {1, 3, 4}
```
三、总结
不可变类型(如int、float、tuple等):一旦创建,内容不可修改。对它们的操作会生成新的对象。
可变类型(如list、dict、set等):它们的内容可以直接修改,允许你对其进行增、删、改操作。