notas de estudio Python (siete) -------- estructuras de datos de Python

En primer lugar, la relevancia

Los datos de estructura es un equipo para almacenar, organizar los datos de modo. estructura de datos se refiere a la presencia de uno o más específica relación mutua entre elementos de datos establecidos.

La mayor parte de la estructura de datos en Python última instancia, puede descomponerse en tres tipos: conjunto (Set), la secuencia (secuencia), de mapeo (mapping).

1, es una colección de secuencia escalar independiente y la estructura de datos especial de mapeo, que soporta una variedad de operación de la teoría de conjuntos matemático. Su existencia hace que el código de la aplicación para lograr la teoría matemática se convierte en fácil.

2, la secuencia de Python es el más básico tipos incorporados. Se divide en siete tipos: de la lista, de cuerda, una tupla, cadenas Unicode, tampón matriz de bytes y objetos xrange. comúnmente utilizados son: una lista (lista), la cadena (String), tuplas (tupla).

3, el mapeo se implementa en Python diccionario estructura de datos (Diccionario). Como tercera unidad básica, la cartografía flexibles hace que tiene una amplia gama de aplicaciones y excelente escalabilidad en una variedad de ocasiones.

En segundo lugar, las estructuras de datos comunes de Python

1. Lista: Lista

Nos pusieron en una lista para ilustrar su primera, porque la lista de cadenas o tuplas diferentes, las listas son mutables. Por "variable" y "inmutable" Los estudiantes tienen preguntas, puede ver las " notas de Python de estudio (seis) -------- función de Python ", el artículo descripción de la variable y no variable se detalla allí.

lista de Python de métodos relacionados

método descripción
list.append (x) Adición de un elemento al final de la lista, que corresponde a una [len (a):] = [x].
lista.extend (L) Para ampliar la lista mediante la adición de todos los elementos de lista especificada, que corresponde a una [len (a):] = L.
list.insert (i, x) Insertar un elemento en la ubicación especificada. El primer parámetro es el índice para ser insertado en la parte delantera de la cual ese elemento, por ejemplo a.insert (0, x) será insertado antes de toda la lista, y a.insert (len (a), x) corresponde a.append ( x).
list.remove (x) Retire el primer elemento de la lista cuyo valor es x. Si no hay tal elemento, se devuelve un error.
list.pop ([i]) Elimina el elemento desde la posición especificada en esta lista, y lo devuelve. Si no se especifica el índice, a.pop () Devuelve el último elemento. elementos, entonces se eliminan de la lista. (Me acerco a los corchetes denotan que el parámetro es opcional, no es que se debe escribir entre corchetes, verá esta notación con frecuencia en la biblioteca de referencia de Python).
list.clear () Eliminar todos los elementos de la lista, igual al del a [:].
list.index (x) Devuelve el índice del primer valor en la lista de elementos x. Si el elemento no coincide con las declaraciones de un error.
list.count (x) Devuelve el número de veces que aparece x en la lista.
list.sort () En la lista de elementos a ser ordenados.
list.reverse () La lista de elementos invertida.
list.copy () copia superficial parte posterior de una lista, es igual a un [:].

 práctica

myList = [1, "Baldwin", (1, 2, 4), {"Jack", "Tom"}, {"money": 40}]
newList = [43]

myList.append({"age": 18})              # 给当前列表新增一个元素
print(myList)

myList.extend(newList)                  # 通过制定列表来扩充当前列表
print(myList)

myList.insert(1, {"name": "Baldwin"})   # 在下表1的位置上插入
print(myList)

myList.remove(1)                        # 移除值为1的元素
print(myList)

print(myList.pop(3))                    # 移除指定位置元素,并返回这个元素值

myList.clear()                          # 删除所有元素
print(myList)
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
[1, 'Baldwin', (1, 2, 4), {'Jack', 'Tom'}, {'money': 40}, {'age': 18}]
[1, 'Baldwin', (1, 2, 4), {'Jack', 'Tom'}, {'money': 40}, {'age': 18}, 43]
[1, {'name': 'Baldwin'}, 'Baldwin', (1, 2, 4), {'Jack', 'Tom'}, {'money': 40}, {'age': 18}, 43]
[{'name': 'Baldwin'}, 'Baldwin', (1, 2, 4), {'Jack', 'Tom'}, {'money': 40}, {'age': 18}, 43]
{'Jack', 'Tom'}
[]

Process finished with exit code 0

Más uso de la lista de formas en Python, a veces basada en la lista para implementar una pila o cola

Implementación de la lista de una pila

Heap pila es una estructura de datos. Estructura de datos de un elemento de datos que se apila en secuencia, solamente en un extremo (denominado como una parte superior de la pila (Top)) para insertar y elementos de datos de borrado (último hacia fuera), los datos puede ser entendido como el acceso a la pila cubo de poner el libro y recoger el libro.

Implementación de la lista de una estructura de pila depender principalmente posible método de agregación y de pop métodos, apend método ya no cansados, nos fijamos en el uso especial del estallido del método: Si no hay ningún índice, a.pop () Devuelve el último elemento . Basándose en estos dos métodos se puede lograr los requisitos de la estructura de datos de la pila.

stack = [1, 2, 3, 4, 5]

stack.append(6)     #压栈
print(stack)
stack.pop()         #出栈
print(stack)
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5]

Process finished with exit code 0

cola de la lista

Una cola es una especial forma lineal , es especial en que sólo permite su eliminación en el extremo delantero de la mesa (delantera), mientras que el extremo posterior de la inserción, la mesa (trasera), y la pila como una cola por el operativo tabla de restricciones lineal. Conocido como el extremo de cola del extremo, operación de eliminación se conoce como operación de cabeza de inserción. reglas de acceso a los datos de cola se puede decir Jane como "primero en entrar primero en salir FIFO", puede ser entendido como una línea en el tren, la gente debe ser la primera línea de los primeros en subirse al tren.

Se dan cuenta de que hay algunos problemas con la lista de la cola, añadir o pop-up de datos en el final de la lista es muy rápido, pero los datos que se insertan en la cabeza detrás de la canción todos los datos necesarios para mover, al parecer, por lo que la eficiencia es muy baja.

A la cabeza de la función de lista emergente no se utiliza directamente, estamos aquí para introducir deque

from collections import deque
list = [1,2,3,4,5]
queue = deque(list)


print(queue.popleft())      # 出队
print(queue)
queue.append(18)            # 入队
print(queue)
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
1
deque([2, 3, 4, 5])
deque([2, 3, 4, 5, 18])

Process finished with exit code 0

Las listas por comprensión

Las listas por comprensión proporcionan una manera concisa para crear una lista de la secuencia. Típicamente algunos funcionamiento de la aplicación a cada elemento de una secuencia, con los resultados obtenidos como un elemento que genera una nueva lista, o crear una sub-secuencia se determina de acuerdo a la condición de determinación.

Cada lista por comprensión son para después con una expresión, entonces cero o más por si o cláusulas. El resultado es de una lista generada para contextos posteriores y si se basa en la expresión. Si desea derivar una expresión tupla, debe utilizar paréntesis.

myList = [1, 23, 87, 5]

newList = [2 * m + 1 for m in myList]
print(newList)
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
[3, 47, 175, 11]

Process finished with exit code 0

Anterior demuestra una simple lista por comprensión, la lista hay muchos usos interesantes derivación, los estudiantes interesados ​​pueden ir a probar.

2. tupla

Tupla compuesta de una pluralidad de valores separados por comas.

myTuple = (12, 78, 45, 656)     # 常规方式定义元组
newTuple = 12, 11, 10           # 特殊方式 

print(myTuple)
print(newTuple)
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
(12, 78, 45, 656)
(12, 11, 10)

Process finished with exit code 0

Tuplas se pueden crear dos maneras de ir, pero la salida se pondrá entre paréntesis en esta sugerencia para crear usando métodos convencionales

3. colección

Es un conjunto que contiene los elementos no se superponen y no hay una estructura de datos, en Python, teniendo una prueba de la función de recogida y eliminación de elementos duplicados.

mySet = {1231, 3123, 31231, 1212, 1212}
newSet = {m-1000 for m in mySet}

print(mySet)
print(newSet)
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
{3123, 1212, 31231, 1231}
{231, 2123, 212, 30231}

Process finished with exit code 0

El programa anterior se está ejecutando, podemos obtener tres tipos de información:

1 por un conjunto de llaves {} Crear

2. Tener en cuenta, crear una colección cuando entré dos valores duplicados (los dos últimos), aunque el conjunto no está dando, pero elimina automáticamente los valores duplicados

3. El conjunto también es compatible con derivaciones

4. Diccionario

El mapa Python diccionario de referencia en el tipo Java, un conjunto de datos al azar de dos hileras, los datos almacenados en la forma de pares de clave y valor, a menudo toman la cadena o el valor como una clave en un diccionario, la llave no se puede repetir, pero el valor de se puede repetir. Cuando el valor puede ser un valor de clave

{} Crear un diccionario

myDict = {"name": "Baldwin", "age": 18}
print(myDict["name"])
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
Baldwin

Process finished with exit code 0

constructor dict () para crear un diccionario

mydict = dict({'name': 'Baldwin', 'age': 18})
print(mydict)

+ Las derivaciones crear un diccionario de tuplas

mydict = {x:x+11 for x in [1,2,3]}
print(mydict)

En tercer lugar, el resumen

Varias estructuras de datos siguen siendo el mismo idioma, aprender unos de otros, casi

 

Publicado 46 artículos originales · ganado elogios 113 · vistas 110 000 +

Supongo que te gusta

Origin blog.csdn.net/shouchenchuan5253/article/details/104964163
Recomendado
Clasificación