English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Deque es una generalización de la estructura de pila y cola, inicializada de izquierda a derecha. Utiliza objetos list para crear una cola doble, proporcionando O(1)Complejidad de tiempo.
Dequeis una clase de biblioteca estándar ubicada encollectionsmódulo.
Para poder usarlo, primero necesitamos importar el módulo de biblioteca estándar de colecciones.
import collections
En esta sección, veremos algunas funciones de la clase Deque
Hay dos tipos diferentes de adiciones.append()
El método se utiliza para agregar elementos al extremo derecho de la cola, elappendleft()
El método se utiliza para agregar elementos a la izquierda de la cola.
import collections as col #Insertar algunos elementos en la cola al principio my_deque = col.deque('124dfre') print('Desencajar: ') + str(my_deque) #insertar x a la derecha y B a la izquierda my_deque.append('x') my_deque.appendleft('B') print('Desencajar después de agregar: ' + str(my_deque)
Resultado de salida
Desencajar: deque(['1', ''2', ''4', 'd', 'f', 'r', 'e']) Desencajar después de agregar: deque(['B', '1', ''2', ''4', 'd', 'f', 'r', 'e', 'x'])
Al igual que el append, hay dos tipos diferentes de funciones de eliminación.pop()
El método se utiliza para eliminar y devolver el elemento más a la derecha, elpopleft()
El método se utiliza para eliminar y devolver el elemento más a la izquierda de la cola.
import collections as col #Insertar algunos elementos en la cola al principio my_deque = col.deque('124dfre') print('Desencajar: ') + str(my_deque) #eliminar elemento de la derecha e izquierda item = my_deque.pop() print('Elemento extraído: ' + str(item)) item = my_deque.popleft() print('Elemento extraído: ' + str(item)) print('Desencajar después de las operaciones pop: ' + str(my_deque)
Resultado de salida
Desencajar: deque(['1', ''2', ''4', 'd', 'f', 'r', 'e']) Elemento extraído: e Elemento extraído: 1 Desencajar después de las operaciones pop: deque(['2', ''4', 'd', 'f', 'r'])
Algunas funciones de la clase Deque se utilizan para obtener información relacionada con el proyecto. Algunas funciones, comoindex()
,count()
etc. El método index se utiliza para obtener la primera aparición del elemento en la lista. Si no se pasa ningún parámetro al elemento, selecciona toda la lista, y después de especificar un límite específico, verifica el índice dentro de ese límite. Por otro lado, lacount()
El método calcula la frecuencia de los proyectos en la Deque.
import collections as col #Insertar algunos elementos en la cola al principio my_deque = col.deque('AABCDDEFD') print('Desencajar: ') + str(my_deque) #encontrar el índice de D print('Índice de D:' + str(my_deque.index('D'))) print('Índice de D en el rango 5 a 8 es: ' + str(my_deque.index('D', 5, 8)) #Contar el número de apariciones print('Apariciones de A: ' + str(my_deque.count('A'))) print('Apariciones de D: ' + str(my_deque.count('D')))
Resultado de salida
Desencajar: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Índice de D:4 Índice de D en el rango 5 a 8 es: 5 Apariciones de A: 2 Apariciones de D: 3
insert()
yremove()
El métodoHemos visto ya las funciones append y pop en Deque, que se utilizan respectivamente para insertar y eliminar elementos. Además, hay dos métodos relacionados con la inserción y eliminación.insert()
El método se utiliza para insertar números. En este caso, podemos proporcionar el índice de inserción. Por lo tanto, se puede insertar el proyecto en la posición especificada. Y laremove()
El método se utiliza para eliminar la primera aparición del elemento.
import collections as col #Insertar algunos elementos en la cola al principio my_deque = col.deque('AABCDDEFD') print('Desencajar: ') + str(my_deque) #Insertar las letras G y H en la posición 5, 7 respectivamente my_deque.insert(5, 'G') my_deque.insert(7, 'H') print('Desencolar después de insertar: ' + str(my_deque) #Eliminar la primera aparición de la letra D my_deque.remove('D') print('Desencolar después de eliminar: ' + str(my_deque)
Resultado de salida
Desencajar: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Desencolar después de insertar: deque(['A', 'A', 'B', 'C', 'D', 'G', 'D', 'H', 'E', 'F', 'D']) Desencolar después de eliminar: deque(['A', 'A', 'B', 'C', 'G', 'D', 'H', 'E', 'F', 'D'])
La función de expansión se utiliza para agregar varios elementos a la Deque. Podemos usar listas, tuplas y otros conjuntos para proporcionar varios valores. Hay dos funciones de expansión.extend()
método se utiliza para agregar elementos a la derecha, al igual que repetirappend()
método。Y elextendleft()
método se utiliza para agregar elementos a la izquierda, al igual que repetirappendleft()
método。
import collections as col #Insertar algunos elementos en la cola al principio my_deque = col.deque('AABCDDEFD') print('Desencajar: ') + str(my_deque) #Aumentar mediante el 1, 3, 5, 7 a la derecha y x, y, z a la izquierda my_deque.extend([1, 3, 5, 7]) my_deque.extendleft(['x', 'y', 'z']) print('Desencajar después de extender:') + str(my_deque)
Resultado de salida
Desencajar: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Desencajar después de extender: deque(['z', 'y', 'x', 'A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D',] 1, 3, 5, 7])
podemos usar elreverse()
método invierte el orden de salida de la cola。Hay otro métodorotate()
。使用rotate方法,双端队列可以使用指定为参数的数字进行旋转。如果参数为正,则向右旋转,如果为负数,则向左旋转。
import collections as col #Insertar algunos elementos en la cola al principio my_deque = col.deque('AABCDDEFD') print('Desencajar: ') + str(my_deque) my_deque.reverse() print('Deque después de revertir:') + str(my_deque) #Rotar a la derecha, 3 elementos my_deque.rotate(3) print('Deque después de rotar:') + str(my_deque)
Resultado de salida
Desencajar: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Deque después de revertir: deque(['D', 'F', 'E', 'D', 'D', 'C', 'B', 'A', 'A']) Deque después de rotar: deque(['B', 'A', 'A', 'D', 'F', 'E', 'D', 'D', 'C'])