Búsqueda de sitios web

Python - Malla de diccionario de lista K


El término malla de diccionario se define almacenando el par de valores de cada clave configurada en el diccionario. Incluir la lista K en el diccionario significa insertar la lista como par de valores. En Python, tenemos algunas funciones integradas, como defaultdict() y lambda, que se utilizarán para resolver la malla del diccionario de listas K.

Tomemos un ejemplo de esto.

Dada la lista de entrada,

list1 = [10, 20, 30]
list2 = [40, 50]

El resultado final se convierte en:

{10: {40: [], 50: []}, 20: {40: [], 50: []}, 30: {40: [], 50: []}}

Sintaxis

La siguiente sintaxis se utiliza en los ejemplos:

lambda

La función lambda ofrece un atajo para declarar funciones anónimas breves utilizando la palabra clave lambda. La función lambda sólo contiene expresiones simples.

defaultdict()

defaultdict() es una función incorporada en Python que crea un diccionario simple, pero se inicializa con un módulo de colección.

Ejemplo 1: uso de un bucle for anidado

En el siguiente ejemplo, iniciaremos el programa almacenando los dos valores de la lista en las variables lista1 y lista2 respectivamente. Luego almacene el diccionario vacío en la variable K que creará el resultado en forma de diccionario. Luego use el bucle for donde la variable i itera a través de la primera lista, es decir, lista1 y establece los elementos como clave y valor como {}. A continuación, use el otro bucle for que itera a través de list2 y establece la matriz 2d como valor para la primera lista y muestra la salida.

Ejemplo

list1 = [3, 2]
list2 = [30, 20]
K = {}
for i in list1:
    K[i] = {}
    for j in list2:
        K[i][j] = []
print("Result of Dictionary Mesh:\n", K)

Producción

Result of Dictionary Mesh:
 {3: {30: [], 20: []}, 2: {30: [], 20: []}}

Ejemplo 2: uso de comprensión de diccionario y bucle anidado

En el siguiente ejemplo, inicie el programa creando dos listas de las variables respectivas. Luego use la comprensión del diccionario donde una lista vacía y dos bucles for anidados iteran a través de ambas listas de entrada para generalizar el resultado.

Ejemplo

list1 = [1, 2, 3, 4]
list2 = [100, 200]
K = {i: {j: [] for j in list2} for i in list1}
print("Result of Dictionary Mesh:\n", K)

Producción

Result of Dictionary Mesh:
 {1: {100: [], 200: []}, 2: {100: [], 200: []}, 3: {100: [], 200: []}, 4: {100: [], 200: []}}

Ejemplo 3: uso de defaultdict del módulo de colecciones

En el siguiente ejemplo, iniciaremos el programa importando el módulo defaultdict de las colecciones de la biblioteca que permiten a los usuarios establecer valores predeterminados como claves. Luego cree las dos listas de entrada en las variables: lista1 y lista2. A continuación, defina las funciones integradas: defaultdict() y lambda para calcular la malla de diccionarios. Avanzando para usar el bucle for anidado que itera sobre la lista de entrada y encuentra el resultado.

Ejemplo

from collections import defaultdict
list1 = [10, 20, 30, 40, 50]
list2 = [5, 6, 7]
K = defaultdict(lambda: defaultdict(list))
for i in list1:
    for j in list2:
        K[i][j] = []
print(dict(K))

Producción

{10: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 20: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 30: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 40: defaultdict(<class 'list'>, {5: [], 6: [], 7: []}), 50: defaultdict(<class 'list'>, {5: [], 6: [], 7: []})}

Conclusión

Discutimos la malla del diccionario para explorar los diversos métodos para resolver el planteamiento de este problema. Este programa permite al usuario hacer coincidir los elementos correspondientes de una lista individual y crear valores clave en el diccionario. Por lo tanto, esta es una forma más sencilla de estructurar los datos identificables.

Artículos relacionados: