2. 数据类型的分类

2014-12-11  本文已影响0人  梦回吹角连营

Python 的基本数据类型

根据不同的特性,有 3 种模型可以帮我们对 Python 的数据类型进行分类。根据不同的模型进行分类可以帮助我们更好的了解数据类型的工作原理及不同数据类型之间的关系。

另外需要注意的是,数据类型指的是对象的数据类型,而非变量。在 Python 中变量不存在数据类型的概念。

1. 存储模型

简单来说存储模型即通过数据类型所能存储对象的数量来进行分类。

分类 数据类型
标量/原子类型 数字、字符串
容器类型 元组、列表、字典、集合

尽管字符串通常包含多于 1 个字符,但字符串属于标量类型,一个字符串视为一个整体。

2. 更新模型

更新模型是指在对象创建以后,它的值是否可以更新。

分类 数据类型
可变类型 列表、字典、可变集合
不可变类型 数字、字符串、元组、不可变集合

需要注意的是:

>>> a = 1
>>> id(a)
39259240
>>> a = 2
>>> id(a)
39259216                # 变量 a 在重新赋值以后指向的内存地址发生改变
>>> a = (1, 2, [3])
>>> id(a)
140200782961952
>>> a[2] = 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> a[2][0] = 2
>>> a
(1, 2, [2])
>>> id(a)
140200782961952        #元组中的列表确实发生了改变
>>> a = set('a')
>>> hash(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'
>>> b = frozenset('b')
>>> hash(b)
-1475720110065259131

3. 访问模型

访问模型是根据访问数据对象的方式不同进行分类。

分类 数据类型
直接访问 数字
顺序访问 字符串、元组、列表
映射访问 字典
>>> a = 'test'
>>> a[0]
't'
>>> a[0:2]
'te'
>>> a = {'a':1, 'b':2}
>>> a['a']
1
>>> a['b']
2

数据类型分类

数据类型 存储模型 更新模型 访问模型
数字 标量 不可变 直接访问
字符串 标量 不可变 顺序访问
元组 容器 不可变 顺序访问
列表 容器 可变 顺序访问
字典 容器 可变 映射访问
集合 容器 可变/不可变
上一篇 下一篇

猜你喜欢

热点阅读