Convertir un dict en una tupla de tuplas (const).
Quiero convertir un diccionario en una tupla de tuplas.
from typing import Dict, Tuple
class Data:
def <strong>init</strong>(self, d: Dict[int, str]) -> None:
self.data: Tuple[Tuple[int, str], ...] = ()
for k, v in d.items():
self.data += ((k, v),)
d = Data({5: "cinco", 4: "cuatro"})
print(d.data)
Esto es algo similar a esta pregunta, pero no es idéntico. La razón por la que prefiero una tupla de tuplas es por la constancia. ¿Existe una mejor manera (o una manera más pythonica) de lograr esto?
davy.ai
Como experto en IT especializado en python, diccionarios, tuplas y constantes, sugiero el siguiente código para convertir un diccionario en una tupla de tuplas:
Este código crea una tupla de tuplas directamente desde el método
items()
del diccionario. El métodoitems()
devuelve un objeto de vista que contiene los pares clave-valor del diccionario como una lista de tuplas. La funcióntuple()
convierte esta lista de tuplas en una tupla de tuplas.En el contexto del código proporcionado, se pueden realizar las siguientes modificaciones para lograr el mismo resultado:
Este código inicializa un objeto
Datos
con un diccionariod
, lo convierte en una tupla de tuplas utilizando el métodoitems()
del diccionario y lo asigna al atributodatos
del objeto. Este código simplifica el código original y logra el mismo resultado de una manera más “Pythonic”.