Python 面试题
目录

Python 中如何使用 collections 模块中的高级数据结构(如:namedtuple, defaultdict, Counter)?

· 约 2 分钟读完 · 第 155 / 171 章

推荐答案

本题详细解读

namedtuple

namedtuple 是 collections 模块中的一个工厂函数,用于创建一个带有字段名的元组子类。它比普通元组更具可读性,因为可以通过字段名访问元素,而不是通过索引。

  • 创建 namedtuple:使用 namedtuple('类名', ['字段1', '字段2', ...]) 创建一个新的类。
  • 访问字段:可以通过字段名访问元组中的元素,如 p.x 和 p.y。

defaultdict

defaultdict 是 collections 模块中的一个字典子类,它允许为字典中的键设置默认值。当访问一个不存在的键时,defaultdict 会自动为该键创建一个默认值。

  • 创建 defaultdict:使用 defaultdict(默认值类型) 创建一个新的字典。例如,defaultdict(int) 会为不存在的键自动初始化为 0。
  • 自动初始化:当访问一个不存在的键时,defaultdict 会自动调用指定的默认值类型来初始化该键的值。

Counter

Counter 是 collections 模块中的一个字典子类,用于统计可哈希对象的出现次数。它可以方便地统计列表、字符串等可迭代对象中元素的频率。

  • 创建 Counter:使用 Counter(可迭代对象) 创建一个新的计数器。例如,Counter(['a', 'b', 'a']) 会统计列表中每个元素的出现次数。
  • 统计结果:Counter 对象会返回一个字典,其中键是元素,值是该元素的出现次数。