Python: extrae elementos del diccionario con elementos de lista

A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos extraer todos los elementos del diccionario que constituyen todos los elementos de una lista. Este tipo de problema puede ocurrir en dominios como la programación competitiva y el desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.
 

Entrada : test_dict = {‘gfg’: [4, 6, 10], ‘is’: [12]} 
Salida : {‘gfg’: [4, 6, 10]}
Entrada : test_dict = {‘gfg’: [ 4, 6, 10]} 
Salida : {‘gfg’: [4, 6, 10]} 
 

Método #1: Usar set() + comprensión de diccionario + items() 
La combinación de las funcionalidades anteriores se puede usar para resolver este problema. En esto, primero reducimos los elementos de la lista para eliminar los duplicados, extraemos los elementos del diccionario usando items() y la construcción del diccionario requerido ocurre usando la comprensión del diccionario.
 

Python3

# Python3 code to demonstrate working of
# Extract dictionary items with List elements
# Using set() + dictionary comprehension + items()
 
# helpr_fnc
def hlper_fnc(req_list, test_dict):
    temp = set(req_list)
    temp2 = { key: set(val) for key, val in test_dict.items() }
    return { key: val for key, val in test_dict.items() if temp2[key].issubset(temp)}
 
# initializing dictionary
test_dict = {'gfg' : [4, 6], 'is' : [10], 'best' : [4, 5, 7]}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# initializing req_list
req_list = [4, 6, 10]
 
# Extract dictionary items with List elements
# Using set() + dictionary comprehension + items()
res = hlper_fnc(req_list, test_dict)
     
# printing result
print("The extracted dictionary: " + str(res))
Producción : 

El diccionario original: {‘is’: [10], ‘best’: [4, 5, 7], ‘gfg’: [4, 6]} 
El diccionario extraído: {‘is’: [10], ‘gfg ‘: [4, 6]} 

 

 
Método #2: Usar all() + comprensión del diccionario 
La combinación de las funciones anteriores se puede usar para resolver este problema. Esta es una solución de una sola línea y usa all() para verificar la membresía de los elementos para decidir la filtración. La comprensión del diccionario realiza la tarea de construcción del diccionario.
 

Python3

# Python3 code to demonstrate working of
# Extract dictionary items with List elements
# Using all() + dictionary comprehension
 
# initializing dictionary
test_dict = {'gfg' : [4, 6], 'is' : [10], 'best' : [4, 5, 7]}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# initializing req_list
req_list = [4, 6, 10]
 
# Extract dictionary items with List elements
# Using all() + dictionary comprehension
res = {key: val for key, val in test_dict.items() if all(vals in req_list for vals in val)}
     
# printing result
print("The extracted dictionary: " + str(res))
Producción : 

The original dictionary : {'is': [10], 'best': [4, 5, 7], 'gfg': [4, 6]}
The extracted dictionary: {'is': [10], 'gfg': [4, 6]}

 

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *