【Python】快速了解一个知识点:Python中的可变和不可变数据类型
前言:
通常“不可变类型总是可哈希的,可变类型总是不可哈希的”,Python中的哈希值是通过对象的值计算而得到的,而不可变对象的值通常是固定的,因此可以确保对象具有唯一的哈希值。相反,可变对象的值可能会改变,导致哈希值的变化,因此不可将可变对象用作哈希表的键。
整理:
- 可变数据类型:
- 包括列表(list)、集合(set)、字典(dict)等。
- 特点:可以通过改变其内容来修改对象的状态。
- 由于可变对象的值可以改变,因此其哈希值也是可变的,不能被用作字典的键或集合的元素。
- 不可变数据类型:
- 包括整数(int)、浮点数(float)、元组(tuple)、字符串(str)等。
- 不能通过改变其内容来修改对象的状态。
- 由于不可变对象的值是固定的,可以确保对象具有唯一的哈希值,可以被用作字典的键或集合的元素。
- 总结:
- 可哈希的对象是不可变的,并且具有唯一的哈希值,可以被用作字典的键或集合的元素。(可哈希不可变)
- 不可哈希的对象可能是可变的或不可变的,如果其值可能会改变,则不可被用作字典的键或集合的元素。(变就不能用作键)