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))
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))
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