El lenguaje de programación Python tiene cuatro tipos de datos de colección: lista , tupla, conjuntos y . Pero también viene con un módulo incorporado conocido como colecciones que tiene estructuras de datos especializadas que básicamente cubre las deficiencias de los cuatro tipos de datos. En este blog, repasaremos en detalle cada una de esas estructuras de datos especializadas. Los siguientes son los temas tratados en este blog:
¿Qué son las colecciones en Python?
Las colecciones en Python son básicamente tipos de datos de contenedor, a saber, listas, conjuntos, tuplas, diccionario. Tienen diferentes características en función de la declaración y el uso.
Una lista se declara entre corchetes, es mutable, almacena valores duplicados y se puede acceder a los elementos mediante índices.
Una tupla es de naturaleza ordenada e inmutable, aunque las entradas duplicadas pueden estar dentro de una tupla.
Un conjunto no está ordenado y se declara entre corchetes. No está indexado y tampoco tiene entradas duplicadas.
Un diccionario tiene pares clave-valor y es de naturaleza mutable. Usamos corchetes para declarar un diccionario.
Estos son los tipos de datos de contenedor integrados de propósito general de Python. Pero como todos sabemos, Python siempre tiene algo extra que ofrecer. Viene con un módulo de Python llamado colecciones que tiene estructuras de datos especializadas.
Estructuras de datos de recopilación especializadas
Colecciones módulo en python implementa estructuras de datos especializadas que brindan una alternativa a los tipos de datos de contenedor integrados de Python. A continuación se muestran las estructuras de datos especializadas en el módulo de colecciones.
- namedtuple ()
- y
- Mapa de cadena
- Mostrador
- OrderedDict
- defaultdict
- UserDict
- Lista de usuarios
- UserString
namedtuple ()
Devuelve una tupla con una entrada con nombre, lo que significa que habrá un nombre asignado a cada valor en la tupla. Supera el problema de acceder a los elementos utilizando los valores del índice. Con namedtuple () es más fácil acceder a estos valores, ya que no es necesario recordar los valores del índice para obtener elementos específicos.
¿Cómo funciona?
En primer lugar, debe importar el módulo de colecciones, no requiere instalación.
de la importación de colecciones namedtuple
Mira el siguiente código para entender cómo puedes usar namedtuple.
a = namedtuple ('cursos', 'nombre, tecnología') s = a ('ciencia de datos', 'python') print (s) #la salida serán cursos (nombre = 'python', tecnología = 'python')
¿Cómo crear una tupla con nombre usando una lista?
s._make (['ciencia de datos', 'python']) #la salida será la misma que antes.
y
deque pronunciado como 'deck' es una lista optimizada para realizar la inserción y eliminación fácilmente.
¿Cómo funciona?
#creando una deque a partir de colecciones import deque a = ['d', 'u', 'r', 'e', 'k'] a1 = deque (a) print (a1) #la salida será deque ([' d ',' u ',' r ',' e ',' k '])
Ahora echemos un vistazo a cómo insertaremos y eliminaremos elementos de deque.
a1.append ('a') print (a1) # la salida será deque (['d', 'u', 'r', 'e', 'k', 'a']) a1.appendleft (' e ') print (a1) # la salida será deque ([' e ',' d ',' u ',' r ',' e ',' k ',' a '])
Como debería ser obvio, la inserción de un componente se mejora utilizando deque, y también puede eliminar componentes.
a1.pop () print (a1) #la salida será deque (['e', 'd', 'u', 'r', 'e', 'k']) a1.popleft () print (a1 ) #la salida será deque (['d', 'u', 'r', 'e', 'k'])
De forma similar a los tipos de datos integrados, hay varias otras operaciones que podemos realizar en una deque. Como contar elementos o limpiar el deque, etc.
cómo ordenar una matriz c ++
ChainMap
Es una clase similar a un diccionario que puede hacer una vista única de múltiples asignaciones. Básicamente, devuelve una lista de varios otros diccionarios. Suponga que tiene dos diccionarios con varios pares clave-valor, en este caso ChainMap hará una sola lista con ambos diccionarios en ella.
¿Cómo funciona?
iso 9000 vs seis sigma
de las colecciones importar ChainMap a = {1: 'edureka', 2: 'python'} b = {3: 'ciencia de datos', 4: 'Aprendizaje automático'} c = ChainMap (a, b) print (c) #the la salida será ChainMap [{1: 'edureka', 2: 'python'}, {3: 'ciencia de datos', 4: 'Aprendizaje automático'}]
Para acceder o insertar elementos usamos las claves como índice. Pero para agregar un nuevo diccionario en ChainMap usamos el siguiente enfoque.
a1 = {5: 'AI', 6: 'redes neuronales'} c1 = c.new_child (a1) print (c1) #la salida será ChainMap [{1: 'edureka', 2: 'python'}, { 3: 'ciencia de datos', 4: 'Aprendizaje automático'}, {5: 'AI', 6: 'redes neuronales'}]
Mostrador
Es una subclase de diccionario que se utiliza para contar objetos hash.
¿Cómo funciona?
de importación de colecciones Contador a = [1,1,1,1,2,3,3,4,3,3,4] c = Contador (a) imprimir (c) #la salida será Contador = ({1: 4, 2: 1, 3: 4, 4: 2})
Además de las operaciones que puedes realizar en un diccionario, Contador tiene 3 operaciones más que podemos realizar.
- función de elemento: devuelve una lista que contiene todos los elementos del contador.
- Most_common (): devuelve una lista ordenada con el recuento de cada elemento en el contador.
- Subtract (): toma un objeto iterable como argumento y deduce el recuento de elementos en el contador.
OrderedDict
Es una subclase de diccionario que recuerda el orden en que se agregaron las entradas. Básicamente, incluso si cambia el valor de la clave, la posición no cambiará debido al orden en que se insertó en el diccionario.
¿Cómo funciona?
de colecciones import OrderedDict od = OrderedDict () od [1] = 'e' od [2] = 'd' od [3] = 'u' od [4] = 'r' od [5] = 'e' od [6] = 'k' from [7] = 'a' print (from) #la salida será OrderedDict [(1, 'e'), (2, 'd'), (3, 'u'), (4, 'r'), (5, 'e'), (6, 'k'), (7, 'a')]
No importa qué valor se inserte en el diccionario, el OrderedDict recuerda el orden en el que se insertó y obtiene el resultado en consecuencia. Incluso si cambiamos el valor de la clave. Digamos, si cambiamos el valor clave 4 a 8, el orden no cambiará en la salida.
defaultdict
Es una subclase de diccionario que llama a una función de fábrica para proporcionar valores faltantes. En general, no arroja ningún error cuando se llama a un valor de clave faltante en un diccionario.
¿Cómo funciona?
de las colecciones import defaultdict d = defaultdict (int) # tenemos que especificar un tipo también. d [1] = 'edureka' d [2] = 'python' print (d [3]) # dará la salida como 0 en lugar de keyerror.
UserDict
Esta clase actúa como envoltorio de los objetos de diccionario. La necesidad de esta clase vino de la necesidad de subclasificar directamente de dict. Es más fácil trabajar con esta clase ya que el diccionario subyacente se convierte en un atributo.
colecciones de clases.UserDict ([initialdata])
Esta clase simula un diccionario. El contenido de la instancia se guarda en un diccionario normal al que se puede acceder con el atributo 'datos' de la clase UserDict. No se conserva la referencia de los datos iniciales, para que sea utilizada para otros fines.
Lista de usuarios
Esta clase actúa como un contenedor alrededor de los objetos de la lista. Es una clase base útil para otras listas, como clases, que pueden heredar de ellas y anular los métodos existentes o incluso agregar menos métodos nuevos.
La necesidad de esta clase vino de la necesidad de subclasificar directamente de la lista. Es más fácil trabajar con esta clase ya que la lista subyacente se convierte en un atributo.
colecciones de clases.UserList ([lista])
Es la clase que simula una lista. El contenido de la instancia se mantiene en una lista habitual. Se confía en las subclases de la lista para ofrecer un constructor al que se puede llamar sin ningún argumento o con uno.
En este blog, hemos aprendido sobre las estructuras de datos especializadas que vienen con el módulo de colecciones en Python. La optimización conduce a un mejor rendimiento y mejores resultados. Lo mismo se aplica a nuestra propia carrera y habilidades. Si desea iniciar su aprendizaje y optimizar la forma en que percibe la programación, inscríbase en edureka y desata las infinitas posibilidades con Python.
¿Tienes alguna duda? menciónalos en los comentarios y nos comunicaremos contigo lo antes posible.