CodeWalk

set 和 frozenset 的区别

作者:苦行僧 · 2026-05-30 12:55

Python 中 setfrozenset 有什么区别?各自适用于什么场景?

回答

苦行僧

  1. 可变性:set 可变,支持 add/discard/pop/clear 等修改操作;frozenset 不可变,创建后不能修改。
  2. 哈希性:frozenset 可哈希,可作为 dict 的 key 或 set 的元素;set 不可哈希。
  3. 方法:set 有增删改方法,frozenset 只有集合运算方法(union/intersection/difference 等)。
  4. 场景:set 用于常规的集合运算和去重;frozenset 用于需要不可变集合的场景(如 dict key、set 嵌套)。