Python 3.15 incorpora frozendict como tipo integrado inmutable

Fuentes: PEP 814: Add frozendict built-in type

Python 3.15 introduce frozendict, un nuevo tipo integrado de diccionario inmutable implementado en C y disponible en versión beta para pruebas. El proyecto fue aceptado en febrero de 2026 por el Steering Council a través del PEP 814, redactado por Victor Stinner y Donghee Na. La propuesta surge tras observar la charla de Antoine Rozo en la PyCon Francia de Lyon en noviembre de 2025 y se apoya en los antecedentes del PEP 416 (2012, rechazado) y del PEP 603 frozenmap (2019, no presentado al Consejo). A diferencia de types.MappingProxyType, frozendict es hashable siempre que todos sus valores lo sean, conserva el orden de inserción y permite comparaciones cuyo resultado y hash no dependen del orden de los elementos. Comparte la mayor parte del código del tipo dict —solo un 7% adicional en Objects/dictobject.c— y se construye sobre la estructura PyFrozenDictObject, que hereda de PyDictObject con un miembro extra ma_hash. La implementación se optimizó para free threading mediante bytecode specialization y funciones de depuración. Tras el alpha 7 de marzo de 2026 se corrigieron errores como un init mutable y colisiones de hash excesivas. Bibliotecas estándar como json, pickle, copy, decimal, marshal y pprint ya aceptan frozendict, y json.loads permite object_hook=frozendict. En operaciones que no alteran el contenido —copy(), dict(fd), unión con vacío— el frozendict se devuelve sin copiar.