On this page

Python 数据类型

Python 数据类型详解

Python 是一种动态类型语言,拥有丰富的数据类型系统。以下是 Python 主要数据类型的全面介绍:

1. 基本数据类型

数值类型

  • int (整数):x = 10
    • Python 3 中整数没有大小限制
  • float (浮点数):y = 3.14
    • 使用双精度(64位)表示
  • complex (复数):z = 2+3j
    • 实部和虚部都是浮点数

布尔类型

  • boolflag = Trueflag = False
    • 实际上是 int 的子类(True=1, False=0)

文本类型

  • str (字符串):s = "Hello"s = 'World'
    • 不可变序列
    • 支持单引号、双引号和三引号(多行字符串)

2. 序列类型

可变序列

  • list (列表):lst = [1, 2, 3]
    • 有序、可变、可包含不同类型元素
    • 常用方法:append(), extend(), pop(), sort()

不可变序列

  • tuple (元组):tup = (1, 2, 3)

    • 不可变、通常用于异构数据
    • 单元素元组需要加逗号:singleton = (1,)
  • range (范围):r = range(5)

    • 表示不可变的数字序列
    • 常用于循环:for i in range(5):
  • str (字符串)

    • 虽然是文本类型,但也是不可变序列

3. 映射类型

  • dict (字典):d = {"a": 1, "b": 2}
    • 键值对集合,键必须是不可变类型
    • 无序(Python 3.7+ 保持插入顺序)
    • 常用方法:keys(), values(), items(), get()

4. 集合类型

  • set (集合):s = {1, 2, 3}

    • 无序、不重复元素集合
    • 可变,支持集合运算(并集、交集等)
  • frozenset (冻结集合):fs = frozenset([1, 2, 3])

    • 不可变集合,可用作字典的键

5. 二进制类型

  • bytes (字节串):b = b"hello"

    • 不可变字节序列
    • 常用于二进制数据操作
  • bytearray (字节数组):ba = bytearray(b"hello")

    • 可变版本的bytes
  • memoryview (内存视图)

    • 允许直接访问对象的内存表示

6. 特殊类型

  • NoneType (空类型):x = None
    • 表示空值或无值

类型检查与转换

# 类型检查
type(10)  # <class 'int'>
isinstance(10, int)  # True

# 类型转换
int("10")  # 10
float(10)  # 10.0
str(10)  # "10"
list((1, 2))  # [1, 2]
tuple([1, 2])  # (1, 2)
set([1, 1, 2])  # {1, 2}

可变性比较

可变类型不可变类型
listint
dictfloat
setstr
bytearraytuple
bytes
frozenset

实际应用建议

  1. 需要修改数据时选择可变类型(list, dict, set)
  2. 需要哈希或作为字典键时使用不可变类型(tuple, frozenset)
  3. 大量数值计算考虑使用array模块或第三方库如NumPy
  4. 字符串操作优先使用str方法而非列表转换
  5. 字典是Python中最高效的数据结构之一,善用它可以优化代码

Python的数据类型系统既灵活又强大,合理选择数据类型可以显著提高代码的性能和可读性。