正确答案是:C: 集合可变,冻集合不可变。
### 分析:
- **集合(set)**:
- **可变性**:集合是可变的数据结构,这意味着你可以在集合创建后,添加或删除其中的元素。
- **操作**:常见的操作包括 `.add()` 方法来添加元素,`.remove()` 或 `.discard()` 方法来删除元素。
- **冻集合(frozenset)**:
- **不可变性**:冻集合是集合的一种不可变版本。一旦创建,就不能再对其进行任何修改(比如添加或删除元素)。
- **用途**:由于不可变性,冻集合可以用作字典的键或者存储在其他集合中。
### 表格对比:
| 特性 | 集合(set) | 冻集合(frozenset) |
|-----------|---------------|---------------------|
| 可变性 | 可变 | 不可变 |
| 元素添加 | 支持 `.add()` | 不支持 |
| 元素删除 | 支持 `.remove()` / `.discard()` | 不支持 |
| 用作字典键| 否 | 是 |
| 存储在集合中 | 否 | 是 |
这种设计的主要目的在于满足不同应用场景下的需求:当需要一个动态的、可以修改的集合时使用 `set`,而在需要保证集合不被篡改的场景下(如字典的键),则使用 `frozenset`。