Programa Python para extraer elementos del diccionario para valores personalizados
Los valores personalizados son valores específicos que se definen y seleccionan según ciertos criterios. En un conjunto de datos grande y complejo, la especificación es muy importante para construir un programa optimizado y, por lo tanto, la extracción de datos relevantes se vuelve muy importante. Podemos pasar una lista de referencia según la cual se pueden extraer los valores.
Esta lista de referencia tiene sus propias implicaciones ya que almacena información concisa. En este artículo discutiremos un concepto similar de extracción de elementos de diccionario (tanto claves como valores) para datos personalizados pasados a través de una lista.
Comprender el problema
Crearemos un diccionario formado por determinados datos. Cada clave estará asociada a diferentes valores y luego pasaremos una lista de referencia que almacena numerosos valores. Se extraerán aquellos elementos del diccionario donde el valor del diccionario sea igual al valor de referencia, es decir, todos los valores del diccionario que coincidan con el valor de la lista deben aislarse junto con su correspondiente “clave”.
Escenarios de entrada y salida
Consideremos un diccionario con los siguientes valores:
Input:
dict1 = {"Grapes":12, "Mangoes":18, "Apples":10, "Strawberries":4, "Coconut":24}
lis1 = [13, 18, 4, 22]
Como podemos ver, los valores “18” y “4” de la lista de referencias coinciden con los valores de las claves del diccionario “Mangos” y “ Fresas”. Por lo tanto, se debe devolver el siguiente resultado:
Output: {'Mangoes': 18, 'Strawberries': 4}
Ahora que hemos entendido el planteamiento del problema, analicemos algunas soluciones.
Usando bucles (iteraciones)
Después de crear el diccionario, usaremos un bucle for para iterar sobre las claves y los valores. Crearemos un diccionario vacío que almacenará solo los elementos del diccionario extraídos.
También iteraremos sobre la lista de referencia y luego uniremos todos y cada uno de los valores de la lista con diferentes valores del diccionario. Estableceremos una condición "if" para verificar estos valores coincidentes y luego los almacenaremos en un diccionario vacío.
Ejemplo
A continuación se muestra un ejemplo para extraer elementos del diccionario para valores personalizados mediante bucles:
dict1 = {"Grapes":12, "Mangoes":18, "Apples":10, "Strawberries":4, "Coconut":24}
lis1 = [13, 18, 4, 22]
dict2 = {}
print(f"The original dictionary is: {dict1}")
for keys, values in dict1.items():
for x in lis1:
if values == x:
dict2[keys] = values
print(f"The new dictionary consisting of custom values: {dict2}")
Producción
The original dictionary is: {'Grapes': 12, 'Mangoes': 18, 'Apples': 10, 'Strawberries': 4, 'Coconut': 24}
The new dictionary consisting of custom values: {'Mangoes': 18, 'Strawberries': 4}
Uso de la comprensión del diccionario
Otra forma eficiente y limpia de ejecutar este programa implica el uso de comprensión de diccionario. Con la ayuda de esta técnica, podemos producir un código de una sola línea que cubra todo el concepto de iteración. Este enfoque nos permite preparar un programa conciso y altamente legible para extraer elementos del diccionario.
Ejemplo
El siguiente es un ejemplo:
dict1 = {"Grapes":12, "Mangoes":18, "Apples":10, "Strawberries":4, "Coconut":24}
lis1 = [13, 18, 4, 22]
print(f"The original dictionary is: {dict1}")
dict2 = {keys: values for keys, values in dict1.items() if values in lis1}
print(f"The new dictionary consisting of custom values: {dict2}")
Producción
The original dictionary is: {'Grapes': 12, 'Mangoes': 18, 'Apples': 10, 'Strawberries': 4, 'Coconut': 24}
The new dictionary consisting of custom values: {'Mangoes': 18, 'Strawberries': 4}
Usando la función Lambda + función filter()
En este enfoque, usaremos la función filter() para seleccionar los valores del diccionario que sean iguales a los valores de la lista de referencia. También pasaremos una función lambda como primer parámetro para esta función filter().
La función lambda actuará como una función de filtrado anónima que determina si un elemento del diccionario debe estar presente en el diccionario filtrado. Pasaremos el diccionario original como segundo parámetro para la función filter(). “items[1] ” se refiere a los valores asociados con cada par clave-valor.
Ejemplo
El siguiente es un ejemplo:
dict1 = {"Grapes":12, "Mangoes":18, "Apples":10, "Strawberries":4, "Coconut":24}
lis1 = [13, 18, 4, 22]
print(f"The original dictionary is: {dict1}")
dict2 = dict(filter(lambda items: items[1] in lis1, dict1.items()))
print(f"The new dictionary consisting of custom values: {dict2}")
Producción
The original dictionary is: {'Grapes': 12, 'Mangoes': 18, 'Apples': 10, 'Strawberries': 4, 'Coconut': 24}
The new dictionary consisting of custom values: {'Mangoes': 18, 'Strawberries': 4}
Otras soluciones y conocimientos valiosos
Hay varias otras soluciones que incluyen el uso de la función “map()” junto con funciones lambda y de filtro. También podemos convertir el diccionario y los valores de la lista en "conjuntos" y luego recuperar los valores comunes. La recuperación de estos valores personalizados juega un papel importante en la visualización de datos y la gestión de conjuntos de datos. También podemos recuperar otros tipos de datos creando un programa generalizado que cubra todo tipo de valores.
Conclusión
Durante el transcurso de este artículo, analizamos las diversas soluciones para extraer elementos del diccionario para valores personalizados. En primer lugar, utilizamos un enfoque de iteración simple para recorrer los valores del diccionario y de la lista de referencia. En nuestro segundo enfoque, utilizamos el concepto de comprensión de diccionario y para la solución final utilizamos filter() y lambda. funciones. Por último, analizamos algunas soluciones alternativas y algunos conocimientos valiosos relacionados con la extracción de valor personalizado.