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

推荐答案

-- -------------------- ---- -------
---- ----------- ------ ----------- ------------ -------

- -- ---------- --------
----- - ------------------- ----- -----
- - --------- ---
---------- ----  - --- -- --

- -- ----------- -------- - ---
-- - ----------------
---------- -- -
-----------------  - --- -
-----------------  - --- -

- -- ------- ------------
--- - ------------- ---- ---- ---- ---- -----
----------  - --- ------------- -- ---- -- ---- ---

本题详细解读

namedtuple

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

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

defaultdict

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

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

Counter

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

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