| | | | | |
|---|
| 数字 | int | | 10 | | |
| 数字 | float | | 3.14 | | |
| 数字 | bool | | True | | |
| 数字 | complex | | 2+4j | | |
| 空值 | NoneType | | None | | |
| 序列 | str | | "abc" | | |
| 序列 | list | | [1,2,3] | | |
| 序列 | tuple | | (1,2,3) | | |
| 序列 | bytes | | b'hello' | | |
| 序列 | bytearray | | bytearray(b'abc') | | |
| 序列 | range | | range(0,10) | | |
| 集合 | set | | {1,2,3} | | |
| 集合 | frozenset | | frozenset({1,2}) | | |
| 映射 | dict | | {"a":1} | | |
先列个清单在这里,作为基础了解下,后续分类仔细讲解。
下面是以前我面试人的时候为面试者准备的部分相关问题,供参考:
1. 说下python的数据类型
- • 基础:整数 (int)、浮点数 (float)、复数 (complex)、布尔值 (bool)、字符串 (str)、列表 (list)、元组 (tuple)、字典 (dict)、集合 (set)、
- • 加分项:冻结集合 (frozenset)、字节 (bytes)、字节数组 (bytearray)、NoneType (None)、Fraction、Decimal
2. 列表(List)和元组(Tuple)的本质区别是什么?
- • 性能:元组轻量,创建和访问更快(无需维护动态结构)。
- • 用途:元组用于固定数据(如字典键),列表用于动态数据。
3. 说下python数据类型的可变类型和不可变类型有哪些
- • 不可变:数值、字符、元组(tuple)、frozenset(一般可能想不到这个)
- • 可变:列表(list)、集合(set)、字典(dict)
回答上来了就接着问:
3.1 为什么字典键必须是不可变类型?
字典通过哈希值快速查找键,若键可变,则哈希值可能改变,导致查找失败。
3.2 如何将可变对象转为不可变?
列表 → 元组:tuple(lst)
集合 → 冻结集合:frozenset(s)
字典 → 可哈希结构(如元组嵌套):tuple(sorted(d.items()))