##############################################################################
# Parte del libro Introducción a la programación con Python
# Autor: Nilo Ney Coutinho Menezes
# Editora Novatec (c) 2015 - ISBN 978-85-7522-250-8
# Primera edición - Mayo/2016
# Sitio: http://www.librodepython.com
#
# Archivo: lista\capítulo 10\10.13 - Clase ListaÚnica (listaunica.py).py
# Descripción: Clase ListaÚnica (listaunica.py)
##############################################################################
class ListaÚnica:
def __init__(self, elem_class):
self.lista = []
self.elem_class = elem_class
def __len__(self):
return len(self.lista)
def __iter__(self):
return iter(self.lista)
def __getitem__(self, p):
return self.lista[p]
def indiceVálido(self, i):
return i >= 0 and i < len(self.lista)
def adiciona(self, elem):
if self.investigación(elem) == -1:
self.lista.append(elem)
def remove(self, elem):
self.lista.remove(elem)
def investigación(self, elem):
self.verifica_tipo(elem)
try:
return self.lista.index(elem)
except ValueError:
return -1
def verifica_tipo(self, elem):
if type(elem) != self.elem_class:
raise TypeError("Tipo inválido")
def ordena(self, clave=None):
self.lista.sort(key=clave)