Comprender el uso de los diccionarios de Python en un artículo

Python es un lenguaje ampliamente utilizado en el análisis de datos, el aprendizaje automático y otros campos, y los diccionarios, como uno de los tipos de datos más utilizados en Python, también se utilizan ampliamente. Este artículo presentará los puntos de conocimiento relevantes de los diccionarios de Python en detalle, incluido el uso básico, el uso avanzado, los principios, las ventajas y desventajas, la evaluación del rendimiento, los escenarios de uso, los consejos, etc. de los diccionarios.

¿Qué es un diccionario?


En Python, un diccionario es un modelo de contenedor mutable que puede almacenar objetos de cualquier tipo. Un diccionario es una relación de mapeo entre claves y valores correspondientes. Entre ellos, la clave debe ser de un tipo único e inmutable (como una cadena, un número entero, etc.) y el valor puede ser cualquier tipo de objeto. En un diccionario, cada clave y valor está separado por dos puntos (:). Varios pares clave-valor están separados por comas (,) y los diccionarios completos están encerrados entre llaves ({}).

Cómo usar todos los diccionarios


1. Crea un diccionario

Podemos crear un diccionario vacío usando la siguiente sintaxis:

my_dict = {}

Si necesita inicializar un diccionario que no esté vacío, puede hacerlo en el siguiente formato:

my_dict = {key1:value1, key2:value2, key3:value3, ...}

2. Accede al diccionario

Se puede acceder a los elementos de un diccionario mediante una clave dada:

my_dict[key]

Entre ellos, key es la clave a la que se accede.

3. Modificar el diccionario

Los elementos en el diccionario pueden ser modificados por una clave dada:

my_dict[key] = new_value

Entre ellos, key es la clave a modificar y new_value es el nuevo valor.

4. Eliminar el diccionario

Un elemento específico se puede eliminar de un diccionario usando el comando del:

del my_dict[key]

Entre ellos, clave es la clave que se eliminará.

5. Recorrer el diccionario

Puede iterar sobre todos los pares clave-valor en un diccionario usando un bucle for:

for key, value in my_dict.items():
    # do something with key and value

Esta declaración visitará cada par clave-valor en el diccionario a su vez y lo asignará a clave y valor. En el bloque de código del ciclo, puede usar estas dos variables para realizar las operaciones correspondientes.

6. La longitud del diccionario

Puede usar la función len() para obtener el número de pares clave-valor en un diccionario:

len(my_dict)

7. Diccionario vacío

Puede usar el método clear() para borrar todos los elementos del diccionario:

my_dict.clear()

Uso básico de diccionarios.


crear diccionario


En Python, podemos crear un diccionario vacío asignando directamente una llave {} a una variable:

my_dict = {}

También es posible definir pares clave-valor directamente al crear un diccionario:

my_dict = {'name': 'Tom', 'age': 20}

Acceder a los elementos del diccionario


En Python, podemos acceder a un elemento en un diccionario mediante una clave dada:

my_dict['name']

Si usamos una clave que no existe, ocurrirá una excepción KeyError.

Modificar elementos del diccionario


En Python, podemos modificar un elemento en un diccionario dándole una clave:

my_dict['name'] = 'Jack'

Esta declaración cambiará el valor de la clave 'nombre' de 'Tom' a 'Jack'.

eliminar elemento del diccionario


En Python, podemos eliminar un elemento específico de un diccionario usando el comando del:

del my_dict['name']

Esta declaración eliminará el par clave-valor con la clave 'nombre' del diccionario.

iterar sobre el diccionario


En Python, podemos iterar sobre todos los pares clave-valor en un diccionario usando un bucle for:

for key, value in my_dict.items():
    print(key, ':', value)

Esta declaración visitará cada par clave-valor en el diccionario a su vez y lo asignará a clave y valor. Para cada par clave-valor, se imprimen la clave y el valor.

la longitud del diccionario


En Python, podemos usar la función len() para obtener el número de pares clave-valor en un diccionario:

print(len(my_dict))

Esta declaración imprimirá el número de pares clave-valor en el diccionario.

diccionario vacío


En Python, podemos usar el método clear() para borrar todos los elementos de un diccionario:

my_dict.clear()

Esta declaración borrará todos los elementos del diccionario.

Uso avanzado de diccionarios.


comprensión del diccionario


En Python, podemos usar comprensiones de diccionarios para crear un nuevo diccionario. Por ejemplo, para convertir una lista en un diccionario:

my_list = [('name', 'Tom'), ('age', 20)]
my_dict = {key: value for key, value in my_list}

Esta declaración creará un nuevo diccionario con las claves 'nombre' y 'edad' y los valores correspondientes 'Tom' y 20 respectivamente.

anidamiento de diccionarios


En Python, podemos usar un diccionario como el valor de otro diccionario. Por ejemplo:

my_dict = {'person': {'name':'Tom', 'age':20}}

Esta declaración creará un diccionario donde 'persona' es una clave y su valor es un diccionario que contiene dos pares clave-valor 'nombre' y 'edad'.

Clasificación de diccionario


En Python, los diccionarios no están ordenados, pero podemos ordenarlos por clave o valor usando la función sorted():

my_dict = {'name': 'Tom', 'age': 20}
# 按键排序
sorted_dict_key = {key: my_dict[key] for key in sorted(my_dict.keys())}
# 按值排序
sorted_dict_value = {key: value for key, value in sorted(my_dict.items(), key=lambda x: x[1])}

El código anterior ordenará el diccionario por clave y valor respectivamente, y creará un nuevo diccionario ordenado.

fusión de diccionarios


En Python, podemos fusionar un diccionario con otro usando el método update():

my_dict = {'name': 'Tom', 'age': 20}
other_dict = {'country': 'China', 'city': 'Beijing'}
my_dict.update(other_dict)

Esta declaración agregará dos pares clave-valor 'país' y 'ciudad' al diccionario my_dict.

Aplicación de funciones en el diccionario.


En Python, podemos usar funciones como map() y filter() para operar en los elementos del diccionario. Por ejemplo, para elevar al cuadrado todos los valores enteros en un diccionario:

my_dict = {'a': 1, 'b': 2, 'c': 3}
new_dict = {key: value**2 for key, value in my_dict.items() if isinstance(value, int)}

El código anterior creará un nuevo diccionario que contiene solo pares clave-valor enteros en el diccionario original y elevará al cuadrado los valores.

El principio del diccionario.


En Python, los diccionarios se implementan como tablas hash. Una tabla hash es una estructura de datos que accede a los valores de acuerdo con las claves. Implementa una función hash internamente. Esta función puede calcular rápidamente el valor hash de una clave y luego usar el valor hash para encontrar el valor correspondiente. .

En Python, una tabla hash se implementa mediante una matriz llamada tabla hash (tabla hash). Cada entrada de la tabla hash tiene dos partes, una es la clave (Clave) y la otra es el valor (Valor). Cuando el programa intenta almacenar un par clave-valor, Python primero calculará el valor hash a través de la clave y luego lo usará como un subíndice para encontrar el valor correspondiente en la tabla hash. Si la ubicación no está ocupada, el par clave-valor se almacena directamente. Si la ubicación ya está ocupada, se produce una colisión (Colisión), y se debe utilizar una estrategia específica (como enlace de separación, detección lineal, etc.) para resolver el conflicto.

Ventajas y desventajas de los diccionarios.


Como uno de los tipos de datos más utilizados en Python, los diccionarios tienen las siguientes ventajas y desventajas:

ventaja


1. Alta flexibilidad: el diccionario puede almacenar cualquier tipo de objeto y admite la adición, eliminación y modificación dinámicas de elementos.

2. Velocidad de consulta rápida: el diccionario se implementa utilizando una tabla hash internamente, y el valor correspondiente se puede buscar muy rápidamente después de calcular el valor hash a través de la clave.

3. Fuerte legibilidad: la estructura clave-valor del diccionario es clara y clara, fácil de entender y operar.

defecto


1. Gran consumo de memoria: dado que la tabla hash se usa dentro del diccionario, se requiere memoria adicional para almacenar información como valores hash y listas vinculadas, por lo que el consumo de memoria del diccionario es relativamente grande.

2. Desorden: los diccionarios están desordenados, por lo que no se puede acceder a ellos por índice, lo que puede ser un inconveniente en algunos casos.

Evaluación del rendimiento de los diccionarios


Como uno de los tipos de datos más utilizados en Python, los diccionarios también han recibido una gran atención por su rendimiento. Esta sección evalúa el rendimiento de los diccionarios.

crear diccionario


Crea un diccionario vacío:

la complejidad velocidad
caso promedio O(1)
peor de los casos En)

Cree un diccionario no vacío:

la complejidad velocidad
caso promedio En)
peor de los casos En)

Acceder, modificar y eliminar elementos del diccionario


La complejidad de acceder, modificar y eliminar elementos del diccionario es:

la complejidad velocidad
caso promedio O(1)
peor de los casos En)

Esta complejidad es bastante rápida porque Python implementa diccionarios usando tablas hash.

iterar sobre el diccionario


Atravesar el diccionario requiere una complejidad de tiempo O(n). Al iterar sobre un diccionario, se debe buscar cada clave y luego acceder al valor correspondiente. Dado que los diccionarios no están ordenados, el orden de las claves durante el recorrido no está definido.

Clasificación de diccionario


En Python, la velocidad de clasificación de un diccionario por clave o valor está relacionada con el algoritmo de clasificación. Si se usa un algoritmo O(nlogn), será relativamente lento. Si se usa un algoritmo O(n) como el ordenamiento por conteo, será relativamente rápido.

fusión de diccionarios


La complejidad de fusionar diccionarios es O(m+n), donde m y n son los tamaños de los dos diccionarios, respectivamente. La complejidad está relacionada con el tamaño de los dos diccionarios.

Escenarios de uso del diccionario


Como uno de los tipos de datos más utilizados en Python, los diccionarios se utilizan en una amplia gama de escenarios. Estos son algunos escenarios de uso comunes:

1. Archivo de configuración: almacene los pares clave-valor en el archivo de configuración en un diccionario y luego acceda a ellos y modifíquelos según sea necesario.

2. Conjunto de resultados de la base de datos: almacene el conjunto de resultados de la base de datos en un diccionario y luego consulte y filtre según sea necesario.

3. Sistema de caché: almacene los pares clave-valor en el caché en un diccionario para consultas y modificaciones rápidas.

4. Archivo de registro: almacene información relevante en el archivo de registro en un diccionario, lo cual es conveniente para la clasificación y el análisis estadístico.

5. Análisis de parámetros de la línea de comandos: convierta los parámetros de la línea de comandos en formato de diccionario para facilitar el procesamiento posterior.

Algunos consejos para los diccionarios

1. Al obtener una clave que no existe en el diccionario, puede establecer el valor predeterminado a través del método setdefault():

my_dict = {'name': 'Tom', 'age': 20}
my_dict.setdefault('country', 'China')

Esta declaración verificará si la clave 'país' existe en el diccionario, si no, agregue la clave y establezca el valor en 'China'.

2. Se puede crear un diccionario con un valor predeterminado de 0 a través de la clase defaultdict en el módulo de colecciones:

from collections import defaultdict
my_dict = defaultdict(int)

El código anterior creará un diccionario con un valor predeterminado de 0.

3. Use el método get() para obtener los elementos en el diccionario y devuelva Ninguno o el valor predeterminado especificado si el elemento no existe:

my_dict = {'name': 'Tom', 'age': 20}
value = my_dict.get('country', 'Unknown')

Esta declaración intentará acceder al valor correspondiente a la clave 'país', si la clave no existe, se devolverá el valor predeterminado 'Desconocido'.

4. Dict Unpacking se puede usar para dividir fácilmente el diccionario en múltiples variables:

my_dict = {'name': 'Tom', 'age': 20}
name, age = my_dict.values()

El código anterior asignará los valores correspondientes a las claves 'nombre' y 'edad' en el diccionario a las dos variables nombre y edad.

5. Puede usar el método popitem() del diccionario para eliminar aleatoriamente y devolver un par clave-valor en el diccionario:

my_dict = {'name': 'Tom', 'age': 20}
key, value = my_dict.popitem()

El código anterior eliminará aleatoriamente y devolverá un par clave-valor, y lo asignará a las variables clave y valor.

en conclusión


En resumen, como uno de los tipos de datos más utilizados en Python, los diccionarios tienen las ventajas de una gran flexibilidad, una velocidad de consulta rápida y una gran legibilidad. Al mismo tiempo, debido a las deficiencias del gran consumo de memoria y el desorden, debemos prestar atención a los problemas correspondientes al usar diccionarios. Para diferentes escenarios de aplicación, podemos usar diferentes usos avanzados de diccionarios para lograr los requisitos correspondientes.

Supongo que te gusta

Origin blog.csdn.net/weixin_40025666/article/details/131337987
Recomendado
Clasificación