В чем разница между frozenset и кортежем
Python
Middle
Без компании
В чем разница между frozenset и кортежем
Ответы
Основное отличие `frozenset` от кортежа (`tuple`) в изменяемости и семантике:
- **Изменяемость элементов**
- `frozenset` содержит **неизменяемые** элементы (как и `tuple`), но сам является **хешируемым** (может быть ключом словаря или элементом другого множества).
- `tuple` — это упорядоченная коллекция, а `frozenset` — неупорядоченная (как обычный `set`).
- **Уникальность элементов**
- `frozenset`, как и `set`, хранит только **уникальные** элементы (дубликаты автоматически удаляются).
- `tuple` сохраняет все элементы, включая дубликаты.
- **Пример использования**
```
# Кортеж (tuple)
t = (1, 2, 2, 3) # Допускает дубликаты, порядок важен
print(t) # (1, 2, 2, 3)
# frozenset
fs = frozenset([1, 2, 2, 3]) # Удаляет дубликаты, порядок не сохраняется
print(fs) # frozenset({1, 2, 3})
```
**Когда использовать?**
- `frozenset`: если нужен неизменяемый `set` (например, для ключа словаря).
- `tuple`: если важен порядок или дубликаты.