创见博客
Python中的数据类型
七崽爱吃小饼干2025/12/17阅读 0

Python 中的数据类型可分为基础内置类型和容器/高级类型两大类,覆盖日常开发、算法刷题、工程开发等绝大多数场景,下面按「使用频率+功能分类」整理,附核心特点和示例:

一、基础内置类型(高频)

这类是 Python 最核心的基础类型,几乎所有代码都会用到:

类型说明示例核心特点
整数(int)无大小限制的整数(正数/负数/0)a = 10; b = -5; c = 0支持加减乘除、取模、幂运算等
浮点数(float)带小数的数值(底层是双精度浮点型)a = 3.14; b = 2.0; c = -0.5注意浮点数精度问题(如 0.1+0.2≠0.3)
布尔值(bool)只有 True/False 两个值(本质是 int 子类,True=1,False=0)a = True; b = 10>5用于条件判断、逻辑运算
字符串(str)不可变的字符序列(单引号/双引号/三引号包裹)s = "hello"; s = 'a'; s = '''多行'''支持切片、拼接、格式化,不可直接修改字符

字符串补充(刷题/开发高频):

python
# 切片(字符串不可变,切片返回新字符串)
s = "abcde"
print(s[1:3])  # 'bc'
# 格式化
print(f"name: {s}, len: {len(s)}")  # 'name: abcde, len: 5'

二、容器类型(核心)

用于存储多个元素,是算法、数据处理的核心类型,按「有序/无序、可变/不可变」分类:

1. 有序容器(可按索引访问)

类型说明示例核心特点
列表(list)可变的有序序列(最常用容器)lst = [1, "a", True, [2,3]]支持增删改查(append/pop/insert)、切片,可嵌套
元组(tuple)不可变的有序序列(小括号包裹,或无括号)t = (1, 2); t = 1, 2不可修改元素,可作为字典键、函数返回多值
范围(range)生成整数序列(多用于循环,节省内存)r = range(0, 5); r = range(10)不可变,按需生成元素,不占额外内存

2. 无序容器(不可按索引访问)

类型说明示例核心特点
字典(dict)可变的键值对集合(3.7+ 有序,之前无序)d = {"name": "Tom", "age": 18}键必须是不可变类型(int/str/tuple),值任意;查询效率 O(1)
集合(set)可变的无序不重复集合s = {1, 2, 2, 3} → {1,2,3}支持交集/并集/差集,去重、成员判断效率高
冻结集合(frozenset)不可变的集合(可作为字典键)fs = frozenset({1,2,3})不可增删元素,支持集合运算

容器高频示例(刷题场景):

python
# 列表(栈/队列实现)
stack = []
stack.append(1)  # 入栈
stack.pop()      # 出栈
# 字典(计数、映射)
count = {}
count["a"] = count.get("a", 0) + 1  # 统计字符出现次数
# 集合(去重、判重)
nums = [1,2,2,3]
unique_nums = set(nums)  # {1,2,3}
if 2 in unique_nums: print("存在")

三、特殊/高级类型(场景化)

这类类型针对特定场景,工程开发/进阶编程常用:

类型说明适用场景
空值(None)表示“无”“空”(不是 0/空字符串/空列表)函数默认返回值、变量初始化
字节串(bytes)不可变的字节序列(二进制数据)网络传输、文件读写(二进制模式)
字节数组(bytearray)可变的字节序列二进制数据修改
枚举(enum.Enum)枚举类型(自定义有限取值的常量)状态标识(如:成功/失败/待处理)
日期时间(datetime)处理日期、时间日志记录、时间计算

四、核心分类维度(易混点)

  1. 可变 vs 不可变:
    • 不可变:int/float/bool/str/tuple/range/frozenset(修改会生成新对象);
    • 可变:list/dict/set/bytearray(直接修改原对象,地址不变)。
  2. 有序 vs 无序:
    • 有序:str/list/tuple/range(可按索引访问);
    • 无序:dict(3.7+ 有序)/set/frozenset(不可按索引)。
  3. 哈希able(可哈希):
    • 可哈希(可作为字典键/集合元素):不可变类型(int/str/tuple/frozenset);
    • 不可哈希:可变类型(list/dict/set)。

五、刷题/开发高频组合

场景常用类型
算法刷题(数组/栈/队列)list(模拟栈/队列)、dict(计数)、set(去重/判重)
字符串处理str(切片/格式化)、list(转列表修改后转回)
数据统计/映射dict(键值对映射)、collections.Counter(计数,dict子类)
去重/集合运算set(交集/并集)

总结

Python 数据类型的核心是「简单易用+灵活」:

  • 基础类型(int/str/bool)解决单值存储;
  • 容器类型(list/dict/set/tuple)解决多值存储,是刷题/开发的核心;
  • 特殊类型针对二进制、时间等场景。

掌握「可变/不可变、有序/无序、可哈希」三个维度,就能快速判断不同场景该用哪种类型。

评论
0/100