Python: obtener la siguiente clave en el diccionario

A veces, mientras trabajamos con los diccionarios de Python, podemos tener un problema en el que necesitamos extraer la siguiente clave en el orden del diccionario. Esto puede tener aplicación a partir de Python 3.6 en adelante se ordenan los diccionarios. Analicemos ciertas formas en que se puede realizar esta tarea. 

Método #1: Usando index() + loop (O (n))

La combinación de las funciones anteriores se puede utilizar para realizar esta tarea. En esto, realizamos la conversión de elementos de diccionario a lista. Y luego index() se usa para verificar el índice y agregar el recuento de índice para obtener el siguiente elemento.

Python3

# Python3 code to demonstrate working of
# Get next key in Dictionary
# Using index() + loop
 
# initializing dictionary
test_dict = {'gfg' : 1, 'is' : 2, 'best' : 3}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# initializing key
test_key = 'is'
 
# Get next key in Dictionary
# Using index() + loop
temp = list(test_dict)
try:
    res = temp[temp.index(test_key) + 1]
except (ValueError, IndexError):
    res = None
 
# printing result
print("The next key is : " + str(res))
Producción : 

The original dictionary is : {'gfg': 1, 'best': 3, 'is': 2}
The next key is : best

 

 
Método #2: Usando iter() + next() (O (n))

Esta es otra forma más en la que se puede realizar esta tarea. En esto, convertimos el diccionario en iterador usando iter() y luego extraemos la siguiente clave usando next(). 

Python3

# Python3 code to demonstrate working of
# Get next key in Dictionary
# Using iter() + next()
 
# initializing dictionary
test_dict = {'gfg' : 1, 'is' : 2, 'best' : 3}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# initializing key
test_key = 'is'
 
# Get next key in Dictionary
# Using iter() + next()
res = None
temp = iter(test_dict)
for key in temp:
    if key == test_key:
        res = next(temp, None)
 
# printing result
print("The next key is : " + str(res))
Producción : 

The original dictionary is : {'gfg': 1, 'best': 3, 'is': 2}
The next key is : best

 

Método #3: Si tiene muchas consultas, deberían ser rápidas -> (O (1))

Cree dos diccionarios adicionales «index_of_key» y «key_of_index» en O (n). Entonces es fácil encontrar un índice de cualquier clave del diccionario original y elegir cualquier otro más o menos esto, verifique si está en el diccionario «key_of_index» y si, entonces consígalo.

Python3

#!/usr/bin/python3
 
# Python3 code to demonstrate working of
# Get next key in Dictionary
# Using two additional dictionaries
# "index_of_key" and "key_of_index"
 
# initializing dictionary
test_dict = {'gfg': 1, 'is': 2, 'best': 3}
 
# prepare additional dictionaries
ki = dict()
ik = dict()
for i, k in enumerate(test_dict):
    ki[k] = i   # dictionary index_of_key
    ik[i] = k     # dictionary key_of_index
 
# printing original dictionary
print("The original dictionary is:", test_dict)
 
# initializing key and offset
test_key = 'is'
offset = 1  # (1 for next key, but can be any existing distance)
 
# Get next key in Dictionary
index_of_test_key = ki['is']
index_of_next_key = index_of_test_key + offset
res = ik[index_of_next_key] if index_of_next_key in ik else None
 
# printing result
print("The next key is:", res)

Salida

The original dictionary is : {'gfg': 1, 'best': 3, 'is': 2}
The next key is : best

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 *