Python: extrae la clave de destino de otros valores clave

A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos extraer una clave particular sobre la base de otras claves de registro coincidentes cuando hay una coincidencia exacta. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: uso de bucle + condiciones
Esta es una de las formas en que se puede realizar esta tarea. En esto, iteramos las claves del diccionario y verificamos los valores coincidentes de cada clave.

# Python3 code to demonstrate working of 
# Extract target key from other key values
# Using loop + condition
  
# initializing list
test_list = [{ 'name' : 'Manjeet', 'English' : 14, 'Maths' : 2}, 
             { 'name' : 'Akshat', 'English' : 7, 'Maths' : 13},
             { 'name' : 'Akash', 'English' : 1, 'Maths' : 17},
             { 'name' : 'Nikhil', 'English' : 10, 'Maths' : 18}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing filter items 
filt_key = {'English' : 7, 'Maths' : 13}
  
# Extract target key from other key values
# Using loop + condition
res = []
for sub in test_list:
        if sub["English"] == filt_key["English"] and sub["Maths"] == filt_key["Maths"]:
            res.append(sub['name'])
             
# printing result 
print("The filtered result : " + str(res)) 
Producción :

La lista original es: [{‘name’: ‘Manjeet’, ‘English’: 14, ‘Maths’: 2}, {‘name’: ‘Akshat’, ‘English’: 7, ‘Maths’: 13}, {‘name’: ‘Akash’, ‘English’: 1, ‘Maths’: 17}, {‘name’: ‘Nikhil’, ‘English’: 10, ‘Maths’: 18}] El resultado filtrado: [
‘ Akshat’]

Método n.º 2: Uso de bucle + condiciones (para claves múltiples/desconocidas)
Esto realiza la tarea de manera similar a como lo hace el método anterior. La ventaja de usar este método es que no es necesario alimentar todas las claves manualmente en condiciones.

# Python3 code to demonstrate working of 
# Extract target key from other key values
# Using loop + conditions ( for multiple / unknown keys )
  
def hlper_func(test_keys, filt_key):
    for key in test_keys.keys():
        if key in filt_key:
            if test_keys[key] != int(filt_key[key]):
                return False
    return True
  
# initializing list
test_list = [{ 'name' : 'Manjeet', 'English' : 14, 'Maths' : 2}, 
             { 'name' : 'Akshat', 'English' : 7, 'Maths' : 13},
             { 'name' : 'Akash', 'English' : 1, 'Maths' : 17},
             { 'name' : 'Nikhil', 'English' : 10, 'Maths' : 18}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing filter items 
filt_key = {'English' : 7, 'Maths' : 13}
  
# Extract target key from other key values
# Using loop + conditions ( for multiple / unknown keys )
res = []
for sub in test_list:
        if hlper_func(sub, filt_key):
            res.append(sub['name'])
             
# printing result 
print("The filtered result : " + str(res)) 
Producción :

La lista original es: [{‘name’: ‘Manjeet’, ‘English’: 14, ‘Maths’: 2}, {‘name’: ‘Akshat’, ‘English’: 7, ‘Maths’: 13}, {‘name’: ‘Akash’, ‘English’: 1, ‘Maths’: 17}, {‘name’: ‘Nikhil’, ‘English’: 10, ‘Maths’: 18}] El resultado filtrado: [
‘ Akshat’]

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 *