TuxInfo 19 - Index of
TuxInfo 19 - Index of
TuxInfo 19 - Index of
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Las listas, conjuntos y los diccionarios pertenecen al grupo conocido como estructuras de<br />
datos mutables. Esta clasificación implica que los valores que contienen pueden ser<br />
alterados en tiempo de ejecución. En otras palabras: se pueden remplazar el elemento<br />
que se encuentra en cualquier posición en una lista; se puede adicionar o remover un<br />
objeto de un conjunto; a una llave podemos asignarle cualquier otro objeto en cualquier<br />
momento; y así sucesivamente. Por el contrario, los tipos str y unicode son calificados<br />
como inmutables, debido a que su contenido no puede ser modificado. Existen otros dos<br />
contenedores, tuple y frozenset, que son similares respectivamente a las listas y<br />
conjuntos, pero que son inmutables. Es decir si se tiene en cuenta la tupla t = (0, 1, 2, 3)<br />
entonces la instrucción t[2] = 9 redundará en un error al no estar permitida la modificación<br />
de los elementos de la tupla.<br />
Si se presta atención a las características de los diferentes tipos de datos presentados, se<br />
puede notar la gran variedad de definiciones del operador []. Todo esto es posible gracias<br />
a la sobrecarga de operadores que permite el lenguaje a través de los métodos<br />
__getitem__, __setitem__ y __delitem__. Estos se encargan respectivamente de la<br />
escritura, lectura y remoción de los elementos del objeto contenedor. Cuando estas<br />
operaciones afectan un único elemento, el intérprete les pasa su índice como parámetro.<br />
En el caso de las listas y otras secuencias, estos valores deben ser números enteros,<br />
mientras que otros objetos como los diccionarios aceptan cualquier objeto que no sea un<br />
contenedor mutable (e.g. enteros, cadenas o tuplas, pero no listas ni diccionarios). Si se<br />
implementaran estos métodos en una clase, obtendríamos un contenedor ajustado a<br />
nuestras necesidades.<br />
Por ejemplo, este es el caso de las clases array (utilizada para contener elementos<br />
numéricos accedidos de manera eficiente) y deque (cola con dos extremos -sí un bicho<br />
de dos cabezas :P -). De igual manera, el índice especificado para acceder a un elemento<br />
de un contenedor no tiene que ser un número, lo que diferencia a Python de otros<br />
lenguajes como Java. Esta característica puede emplearse también para declarar<br />
propiedades indexadas, similares a las de Object Pascal (Borland Delphi). El protocolo<br />
implementado por los contenedores en Python, le acerca a los lenguajes orientados a<br />
objetos.<br />
72