Intersección del diccionario de Python
- Diccionario de Python
- Use Comprensión de diccionario para cruzar dos diccionarios en Python
-
Use el operador bit a bit
&
para cruzar dos diccionarios en Python -
Use el método Set
intersection()
para intersectar dos diccionarios en Python - Métodos utilizados en la intersección de varios diccionarios en Python
- Conclusión
Este artículo discutirá los diferentes métodos para realizar intersecciones en dos o múltiples diccionarios en Python.
Diccionario de Python
Los datos se mantienen en un formato de par clave-valor utilizando un diccionario de Python y es una estructura de datos mutable. El tipo de datos del diccionario de Python puede imitar arreglos de datos del mundo real donde existe un cierto valor para una clave dada.
Las claves y los valores son los elementos utilizados para definir el diccionario:
- Las llaves deben ser un solo elemento.
- El valor puede ser de cualquier tipo, como una lista, un número entero, una tupla, etc.
Un diccionario es, en otras palabras, un grupo de pares clave-valor donde el valor puede ser cualquier objeto de Python. Las claves, por el contrario, son objetos de Python inmutables, como cadenas, tuplas o números.
Se pueden usar múltiples pares clave-valor para construir un diccionario, con dos puntos separando cada clave de su valor antes de que cada par esté contenido entre corchetes.
La sintaxis es la siguiente:
dict = {"Name": "John", "Age": 18, "Grade": "13"}
Veamos un ejemplo:
Use Comprensión de diccionario para cruzar dos diccionarios en Python
Podemos usar diferentes enfoques para realizar la intersección de diccionarios a través de sus claves en Python.
-
Primero, inicialice los diccionarios originales en
dict01
ydict02
para empezar. -
Imprime los diccionarios originales.
-
A continuación, considere la clave de
dict01
comok1
y ejecute el buclefor
para comprobar sik1
endict01
existe endict02
. Si tiene la clave común, su valor se inserta en un nuevo diccionario llamadointersección
(se puede preferir el diccionario según el requisito). -
Imprime el nuevo diccionario
intersección
con las claves comunes y sus valores.
Ejemplo:
# inititializing the dictionaries
dict01 = {"A": 1, "B": 6, "C": 3, "D": 5}
dict02 = {"A": 1, "C": 4, "D": 5, "E": 2}
# printing original dictionary
print("First original dictionary: ", dict01)
print("Second original dictionary: ", dict02)
# performing intersection
intersection = {k1: dict01[k1] for k1 in dict01 if k1 in dict02}
# printing output
print("Intersected Dictionary: ", str(intersection))
Recibirá el resultado que se detalla a continuación si ejecuta el código anterior.
Considere la clave de dict02
como k2
. Ejecute el ciclo for
para verificar si k2
en dict02
también existe en dict01
siguiendo el mismo código.
Además, si los valores son del tipo cadena:
# inititializing the dictionaries
dict01 = {1: "My", 2: "I", 3: "age"}
dict02 = {1: "name", 2: "live", 4: "year"}
# defining a function to merge strings
def mergeStrings(str01, str02):
return str01 + " " + str02
# performing intersection
intersectString = {
k1: mergeStrings(dict01[k1], dict02[k1]) for k1 in dict01.keys() if k1 in dict02
}
# printing output
print(intersectString)
Veamos el resultado del código anterior:
Use el operador bit a bit &
para cruzar dos diccionarios en Python
Simplemente filtra las claves comunes y el valor correspondiente de la clave de los diccionarios. Solo filtra claves con el mismo valor, y este enfoque es mucho más simple de entender y aplicar.
-
Primero, configure
dict01
ydict02
con los diccionarios originales inicialmente. -
Imprima los diccionarios originales a continuación.
-
A continuación, convierta los diccionarios
dict01
ydict02
al formato de lista utilizando la funciónitems()
. -
Luego, realice el AND usando el operador
&
. Los pares clave-valor comunes se convierten luego en un diccionario usando la funcióndict()
y se almacenan en la nuevaintersección
del diccionario. -
Finalmente, imprima el nuevo diccionario.
Ejemplo:
# inititializing dictionary
dict01 = {"A": 1, "B": 6, "C": 3, "D": 5}
dict02 = {"A": 1, "C": 4, "D": 5, "E": 2}
# printing original dictionary
print("First original dictionary: ", dict01)
print("Second original dictionary: ", dict02)
# performing intersection
intersection = dict(dict01.items() & dict02.items())
# printing output
print("Intersected Dictionary", str(intersection))
Recibirá el siguiente resultado si ejecuta el código anterior.
Al realizar el operador Bitwise &
para la intersección del diccionario de Python, tanto las claves como los valores de las respectivas claves también deben ser iguales.
Use el método Set intersection()
para intersectar dos diccionarios en Python
El método set intersección()
devuelve un conjunto que está formado por los elementos que están presentes en ambos conjuntos m
y n
de la siguiente manera:
m = {"A": 1, "B": 6, "C": 3, "D": 5}
n = {"A": 1, "D": 5, "E": 2}
setM = set(m)
setN = set(n)
setM.intersection(setN)
for item in setM.intersection(setN):
print(item)
Si ejecuta el código de ejemplo anterior, obtendrá los resultados a continuación.
Métodos utilizados en la intersección de varios diccionarios en Python
Podemos usar tanto el operador bit a bit &
como el método Set intersection()
para encontrar fácilmente los elementos que se cruzan en varios diccionarios con más codificación.
Usando el operador bit a bit &
:
# inititializing dictionary
dict01 = {"A": 1, "B": 6, "C": 3, "D": 5}
dict02 = {"A": 1, "C": 4, "D": 5, "E": 2}
dict03 = {"A": 1, "C": 9, "D": 5, "E": 1}
# printing original dictionary
print("First original dictionary: ", dict01)
print("Second original dictionary: ", dict02)
print("Third original dictionary: ", dict03)
# performing intersection
intersection = dict(dict01.items() & dict02.items() & dict03.items())
# printing output
print("Intersected Dictionary", str(intersection))
Veamos el resultado después de ejecutar el código anterior:
Usando el método Set intersección()
:
m = {"A": 1, "B": 6, "D": 5, "E": 2}
n = {"A": 1, "D": 5, "E": 2}
t = {"A": 1, "C": 4, "D": 5, "E": 2}
setM = set(m)
setN = set(n)
setT = set(t)
setM.intersection(setN).intersection(setT)
for item in setM.intersection(setN).intersection(setT):
print(item)
Echemos un vistazo al resultado después de ejecutar el código anterior:
Conclusión
Para concluir, consideramos formas rápidas y eficientes de realizar intersecciones en dos o varios diccionarios en Python para crear uno nuevo. Puede seleccionar cualquier enfoque que necesite según su preferencia y caso de uso.
Encontramos la intersección de dos o más diccionarios, todos a nivel de claves únicas y pares clave-valor, a veces usando diferentes funciones para las claves en común. Estos métodos ciertamente no son los únicos; puede pensar en más, y quizás se agreguen métodos más explícitos para estas tareas en versiones posteriores de Python.
Aunque casi todos los fragmentos de código propuestos son de una sola línea, todos son claros y elegantes.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.
Artículo relacionado - Python Dictionary
- Cómo comprobar si existe una clave en un diccionario en Python
- Convertir un diccionario en una lista en Python
- Cómo obtener todos los archivos de un directorio
- Cómo encontrar el valor máximo en el Diccionario Python
- Cómo ordenar un diccionario Python por valor
- Cómo fusionar dos diccionarios en Python 2 y 3