如何判断一个变量是可变类型还是不可变
时间: 2023-08-04 10:28:05 浏览: 182
在 Python 中,可以通过 `id()` 函数来判断一个变量是可变类型还是不可变类型。
如果一个变量的 `id()` 值在多次运行中保持不变,那么这个变量是不可变类型;如果 `id()` 值随着变量的修改而改变,那么这个变量是可变类型。
例如,数字、字符串、元组等不可变类型的 `id()` 值在多次运行中都是不变的,而列表、字典等可变类型的 `id()` 值会随着其元素的增加、删除、修改而改变。
下面是一个例子,演示了如何使用 `id()` 函数来判断变量的可变性:
```python
a = 1
b = 'hello'
c = (1, 2, 3)
d = [1, 2, 3]
e = {'a': 1, 'b': 2}
print(id(a)) # 输出 140710362254768
print(id(b)) # 输出 2312982163328
print(id(c)) # 输出 2312982663280
print(id(d)) # 输出 2312982973696
print(id(e)) # 输出 2312982962624
d.append(4)
e['c'] = 3
print(id(d)) # 输出 2312982973696
print(id(e)) # 输出 2312982962624
```
在这个例子中,我们分别定义了数字类型的变量 a、字符串类型的变量 b、元组类型的变量 c、列表类型的变量 d 和字典类型的变量 e。然后使用 `id()` 函数分别打印它们的内存地址。
在第一次打印时,所有变量的 `id()` 值都是固定的。但是在第二次打印时,我们对列表 d 和字典 e 进行了修改,其 `id()` 值仍然是固定的,说明它们是可变类型。
需要注意的是,这里的 `id()` 函数只是用来判断变量的可变性,不应该用来比较变量的值是否相等。如果要比较变量的值是否相等,应该使用 `==` 运算符。
阅读全文