Python | Filtrar la clave del diccionario según los valores en la lista selectiva

En Python, a veces necesitamos obtener solo algunas de las claves del diccionario y no todas. Este problema es bastante común en el desarrollo web y requerimos obtener solo las claves de diccionario selectivas de alguna lista dada. Analicemos ciertas formas en que se puede resolver este problema.

Método #1: Uso de la comprensión de
listas La comprensión de listas puede usarse para resolver este problema en particular. Esta es solo la forma abreviada de realizarlo en lugar de escribir un bucle.

# Python3 code to demonstrate 
# getting selective dictionary keys
# using list comprehension
  
# initializing dictionary
test_dict = {"Akash" : 1, "Akshat" : 2, "Nikhil" : 3, "Manjeet" : 4}
  
# initializing selective list keys 
select_list = ['Manjeet', 'Nikhil']
  
# printing original dictionary
print ("The original dictionary is : " + str(test_dict))
  
# printing selective list 
print ("The selective list is : " + str(select_list))
  
# using list comprehension
# getting selective dictionary keys 
res = [test_dict[i] for i in select_list if i in test_dict]
  
# printing result 
print ("The selected values from list keys is : " +  str(res))
Producción:

El diccionario original es: {‘Nikhil’: 3, ‘Akshat’: 2, ‘Manjeet’: 4, ‘Akash’: 1}
La lista selectiva es: [‘Manjeet’, ‘Nikhil’]
Los valores seleccionados de las claves de lista es: [4, 3]

 
Método #2: Usarset.intersection()
Este es el método más elegante en el que se puede realizar esta tarea. La propiedad de intersección de los conjuntos puede dar las claves comunes que se pueden extraer y luego se pueden calcular los valores.

# Python3 code to demonstrate 
# getting selective dictionary keys
# using set.intersection()
  
# initializing dictionary
test_dict = {"Akash" : 1, "Akshat" : 2, "Nikhil" : 3, "Manjeet" : 4}
  
# initializing selective list keys 
select_list = ['Manjeet', 'Nikhil']
  
# printing original dictionary
print ("The original dictionary is : " + str(test_dict))
  
# printing selective list 
print ("The selective list is : " + str(select_list))
  
# using set.intersection()
# getting selective dictionary keys 
temp = list(set(select_list).intersection(test_dict))
res = [test_dict[i] for i in temp]
  
# printing result 
print ("The selected values from list keys is : " +  str(res))
Producción:

El diccionario original es: {‘Akshat’: 2, ‘Manjeet’: 4, ‘Nikhil’: 3, ‘Akash’: 1}
La lista selectiva es: [‘Manjeet’, ‘Nikhil’]
Los valores seleccionados de las claves de lista es: [4, 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 *