Introducción
En este proyecto, aprenderás cómo implementar una tupla con nombre simple en Python. Una tupla con nombre es una estructura de datos que te permite acceder a los datos utilizando tanto la indexación posicional como los nombres de atributos, lo que proporciona una forma más intuitiva y legible de trabajar con datos estructurados.
👀 Vista previa
## Salida
🎯 Tareas
En este proyecto, aprenderás:
- Cómo crear una clase
NamedTupleque herede de la clasetupleincorporada - Cómo implementar los métodos
__init__,__new__,__getitem__y__repr__para lograr la funcionalidad deseada - Cómo acceder a los datos utilizando tanto la indexación posicional como los nombres de atributos
- Cómo representar la instancia de
NamedTupleen un formato legible
🏆 Logros
Después de completar este proyecto, podrás:
- Comprender el concepto de tuplas con nombre y sus beneficios
- Implementar una clase simple de tupla con nombre en Python
- Utilizar la tupla con nombre para acceder y representar datos estructurados de manera más intuitiva
Implementar la clase NamedTuple
En este paso, aprenderás cómo implementar la clase NamedTuple, que te permite acceder a los datos utilizando tanto la indexación posicional como los nombres de atributos.
- Abra el archivo
namedtuple.pyen su editor de código. - Defina la clase
NamedTuple, que debe heredar de la clasetuple. - En el método
__init__, acepte dos parámetros:iterable(los datos) yfields(los nombres para los datos). - Almacene el
iterabley losfieldscomo variables de instanciaself.datayself.fields, respectivamente. - Utilice un bucle
forpara iterar sobre losfieldsy establezca cada campo como un atributo de la instancia deNamedTuple, asignando el valor correspondiente deself.data. - Implemente el método
__new__para crear una nueva instancia de la claseNamedTuple. Este método debe llamar al método__new__de la clasetupley devolver la nueva instancia. - Implemente el método
__getitem__para permitir el acceso a los datos utilizando tanto la indexación posicional como los nombres de atributos. Si el índice es una cadena, encuentre el índice del campo correspondiente enself.fieldsy devuelva el valor deself.data. - Implemente el método
__repr__para devolver una representación en cadena de la instancia deNamedTupleen el formatoNamedTuple(x=1, y=2), dondexeyson los nombres de los campos y1y2son los valores correspondientes.
Su clase NamedTuple completada debería verse así:
class NamedTuple(tuple):
def __init__(self, iterable, fields):
self.data = iterable
self.fields = tuple(fields)
for i, attr in enumerate(self.fields):
setattr(self, attr, self.data[i])
def __new__(cls, iterable, fields):
return super().__new__(cls, iterable)
def __getitem__(self, index):
if isinstance(index, str):
index = self.fields.index(index)
return self.data[index]
def __repr__(self):
return f"NamedTuple({', '.join(f'{field}={self[field]}' for field in self.fields)})"
Probar la clase NamedTuple
En este paso, probarás la clase NamedTuple que implementaste en el paso anterior.
- En el archivo
namedtuple.py, agregue el siguiente código al final del archivo:
if __name__ == "__main__":
## Uso de ejemplo:
testData = [1, 2]
fields = ["x", "y"]
t = NamedTuple(testData, fields)
print(t) ## Salida: NamedTuple(x=1, y=2)
print(t[1]) ## Salida: 2
print(t.x) ## Salida: 1
- Guarde el archivo
namedtuple.py. - Abra una terminal o un símbolo del sistema y navegue hasta el directorio que contiene el archivo
namedtuple.py. - Ejecute el siguiente comando para ejecutar el script:
python3 namedtuple.py
Debería ver la siguiente salida:
NamedTuple(x=1, y=2)
2
1
Esto demuestra que la clase NamedTuple está funcionando como se esperaba, lo que te permite acceder a los datos utilizando tanto la indexación posicional como los nombres de atributos.
¡Felicitaciones! Has implementado con éxito una tupla con nombre simple en Python.
Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



