frozendict in Python 3.15 – Immutable Hashable Dictionaries

Advanced Python Features Mar 19, 2026

frozendict in Python 3.15 – Immutable Hashable Dictionaries

Python 3.15 introduces frozendict as a built-in type (PEP 814). It behaves like frozenset does for sets — immutable, hashable, and safe to use as dictionary keys or in sets.

TL;DR

  • frozendict is immutable and hashable
  • Supports union operators | and |=
  • Can be used in type hints and as dict keys
  • Perfect for configuration, caching, and functional-style code

Basic Usage

fd = frozendict({"host": "localhost", "port": 5432})
print(hash(fd))
# fd["port"] = 5433  # TypeError
config_cache = {fd: "cached_value"}

Best Practices

  • Use instead of tuple(dict.items()) for cleaner hashable mappings
  • Great for default configurations that should never change
  • Combine with dataclasses or Pydantic for frozen models

Conclusion

frozendict fills a long-standing gap in Python’s built-in types. In 2026 it will become a standard tool for safer, more functional code.

Share:
Last updated: March 2026
Built-in Functions in Python 2026 str() in Python 2026: String Conversion + Modern Formatting & Best Practices memoryview with JAX in Python 2026: Zero-Copy NumPy → JAX Array Interop + Efficient ML Examples memoryview with TensorFlow in Python 2026: Zero-Copy NumPy → Tensor Interop + GPU Pinning & ML Examples memoryview with TensorFlow in Python 2026: Zero-Copy NumPy → Tensor Interop + ML Examples memoryview with NumPy & PyTorch in Python 2026: Zero-Copy Views, Efficient Slicing & ML Interop Examples memoryview with NumPy in Python 2026: Zero-Copy Views, Efficient Slicing & Real ML Examples memoryview() in Python 2026: Zero-Copy Magic for Large Binary Data + Real Examples import() in Python 2026: How It Works, Security Risks & Modern Alternatives (importlib) zip() in Python 2026: How to Use It, strict=True Behavior & Real-World Examples vars() in Python 2026: Accessing Object Namespace + Modern Introspection Patterns type() in Python 2026: Dynamic Type Inspection & Object Creation + Modern Patterns tuple() in Python 2026: Immutable Sequences + Modern Patterns & Best Practices super() in Python 2026: Method Resolution & Modern Inheritance Patterns sum() in Python 2026: Summing Iterables + Modern Numeric Patterns & Best Practices staticmethod() in Python 2026: Static Methods, Utility Functions & Modern Best Practices sorted() in Python 2026: Sorting Iterables + Modern Patterns & Best Practices slice() in Python 2026: Creating Slice Objects + Modern Patterns & Best Practices setattr() in Python 2026: Dynamic Attribute Setting + Modern Patterns & Safety set() in Python 2026: Mutable Sets Creation + Modern Patterns & Best Practices