核心要点
能按数值/序列/映射/集合/布尔/二进制/None 分类列举
知道可变 vs 不可变类型及典型代表
理解 type() / isinstance() 的用法与区别
简要回答
Python 内置类型分标量(int/float/complex/bool/None)、序列(str/list/tuple/bytes)、映射(dict)、集合(set/frozenset)等;多数容器区分可变与不可变,影响传参副作用与哈希能力。
标准回答
一、先把结论讲清楚
Python 常用内置数据类型可按用途分组:
| 类别 | 类型 | 可变? |
|---|---|---|
| 数值 | int, float, complex, bool |
不可变 |
| 文本/序列 | str, bytes, bytearray |
str/bytes 不可变 |
| 容器 | list, tuple, dict, set, frozenset |
list/dict/set 可变 |
二、检测类型
type(x) 返回精确类型;isinstance(x, list) 支持继承判断,更推荐。
三、面试要点
bool 是 int 子类;None 是单例;可哈希类型才能作 dict 键(list 不行,tuple 内元素全不可哈希才行)。AI 工程中 NumPy ndarray、PyTorch Tensor 是扩展类型,不属于内置。延伸阅读:概率论基础 中也会用到数值与分布类型。
回答思路
【定义】用一句话说清「Python 有哪些内置数据类型」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
延伸学习
Python 官方文档 Built-in Types;本站 概率论基础 涉及统计常用数据结构。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:只罗列名词、不会举例;混淆相似概念;忽略工程约束(成本、延迟、数据质量)。不确定时应主动说明假设。
追问
追问 1:哪些内置类型可作为 dict 的键?
只有**可哈希(hashable)**且不可变的对象:int、str、tuple(元素均需可哈希)、frozenset 等。list、dict、set 可变故不可哈希;自定义类默认可哈希(除非实现 eq 却不实现 hash)。
追问 2:int 在 Python 3 中有大小限制吗?
Python 3 的 int 是任意精度整数,仅受内存限制;不像 C/Java 有固定位宽。float 仍遵循 IEEE 754 双精度,超大整数转 float 可能丢精度。
追问 3:bytes 和 bytearray 有什么区别?
二者都存 0–255 字节序列;bytes 不可变,bytearray 可变。网络 I/O、文件二进制读写常用 bytes;需要原地修改缓冲区时用 bytearray。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
