Python 数据类型:可变与不可变类型的区别

目录

一、不可变数据类型

1. 整数(int)

2. 浮点数(float)

3. 布尔值(bool)

4. 元组(tuple)

二、可变数据类型

1. 列表(list)

2. 字典(dict)

3. 集合(set)

三、总结


在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等):它们的内容可以直接修改,允许你对其进行增、删、改操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值