Python – Lista de valores del diccionario de elementos comunes

La funcionalidad de la unión se ha discutido muchas veces. Pero a veces, podemos tener un contenedor más complejo, en el que necesitamos verificar la intersección de listas que están en forma de claves de diccionario. Analicemos ciertas formas de resolver este tipo de problema.

Método n.º 1: uso de bucles
El uso de bucles es un enfoque ingenuo de fuerza bruta para realizar esta tarea en particular. En este método, verificamos las claves presentes en ambas listas. Incluso verificamos las claves que no están presentes en otros para agregar su valor de lista completo.

# Python3 code to demonstrate
# Common elements Dictionary Value List
# using loops
  
# initializing dicts
test_dict1 = { "Key1" : [1, 3, 4], "key2" : [4, 5] }
test_dict2 = { "Key1" : [1, 7, 3] }
  
# printing original dicts
print("The original dict 1 : " + str(test_dict1))
print("The original dict 2 : " + str(test_dict2))
  
# using loops
# Common elements Dictionary Value List
res = dict()
for key in test_dict1: 
    if key in test_dict2: 
        res[key] = []
        for val in test_dict1[key]:
            if val in test_dict2[key]:
                res[key].append(val)
  
# print result
print("The dicts after intersection is : " + str(res))
Producción :

The original dict 1 : {'Key1': [1, 3, 4], 'key2': [4, 5]}
The original dict 2 : {'Key1': [1, 7, 3]}
The dicts after intersection is : {'Key1': [1, 3]}

Método n.º 2: uso de la comprensión del diccionario + operaciones de configuración
Este es el enfoque de una línea para resolver un problema similar y ofrece una alternativa compacta al método anterior. Esta solución procesa utilizando la comprensión de conjunto para unir los elementos necesarios en listas mediante la comprensión de diccionario.

# Python3 code to demonstrate
# Common elements Dictionary Value List
# using dictionary comprehension + set operations
  
# initializing dicts
test_dict1 = { "Key1" : [1, 3, 4], "key2" : [4, 5] }
test_dict2 = { "Key1" : [1, 7, 3] }
  
# printing original dicts
print("The original dict 1 : " + str(test_dict1))
print("The original dict 2 : " + str(test_dict2))
  
# using dictionary comprehension + set operations
# Common elements Dictionary Value List
res = {key : list(set(set(test_dict1.get(key, [])) & set(test_dict2.get(key, [])))) 
    for key in set(test_dict2) & set(test_dict1)}
  
# print result
print("The dicts after intersection is : " + str(res))
Producción :

The original dict 1 : {'Key1': [1, 3, 4], 'key2': [4, 5]}
The original dict 2 : {'Key1': [1, 7, 3]}
The dicts after intersection is : {'Key1': [1, 3]}

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 *