Como obter a próxima chave no Dicionário em Python?
Dicionários são tipos de dados poderosos do Python. Consiste em pares de valores-chave. Operações como pesquisar, anexar, etc., podem ser realizadas de forma eficiente por meio desse tipo de dados. Embora o acesso a valores em um dicionário seja simples, pode haver situações em que você precise encontrar a próxima chave em um dicionário. Python oferece várias maneiras de conseguir isso, dependendo de seus requisitos específicos. Neste artigo, exploraremos diferentes métodos para obter a próxima chave em um dicionário em Python.
Usando as chaves e o método de índice
Os dicionários são coleções não ordenadas em Python. Portanto, primeiro precisamos converter as chaves em alguma forma ordenada. Podemos primeiro anexar todas as chaves na forma de uma lista. A seguir, podemos indexar a lista para encontrar a próxima chave presente. Com a ajuda da chave, também podemos acessar o valor correspondente
Sintaxe
<dictionary name>.keys()
O método keys é um método embutido em Python que retorna as chaves no dicionário. Ele retorna um objeto de visualização que podemos converter em uma lista usando o método list do Python. O objeto de visualização é dinâmico; portanto, qualquer alteração no dicionário também será refletida no objeto de visualização.
<iterable object>.index(<name of the key>, start, end)
Em Python, o método “index” é um método embutido. Pode ser aplicado à sequência iterável. É necessário um parâmetro necessário, ou seja, o valor cujo índice precisamos encontrar na sequência iterável. Além disso, são necessários dois parâmetros opcionais, início e fim, para definir o intervalo que precisamos para encontrar o elemento. Retorna um número inteiro que representa a primeira ocorrência do elemento na sequência iterável.
Exemplo
No código a seguir, primeiro criamos o dicionário denominado my_dict. Definimos a chave atual como 'banana'. Neste caso, pretendemos encontrar a próxima chave, 'laranja'. Usamos o método de chaves dos dicionários para obter todas as chaves do dicionário. A seguir, usamos o método index para acessar o índice da chave atual. Fornecemos uma instrução condicional onde imprimimos a chave cujo índice é apenas um a mais que a chave atual.
my_dict = {'apple': 1, 'banana': 2, 'orange': 3, 'kiwi': 4}
current_key = 'banana'
keys = list(my_dict.keys())
current_index = keys.index(current_key)
print("The next element to banana is: ", end="")
if current_index < len(keys) - 1:
next_key = keys[current_index + 1]
print(next_key)
else:
print("No next key found.")
Saída
The next element to banana is − orange
Use o módulo OrderedDict
Outra abordagem para obter a próxima chave em um dicionário é usar a classe Ordered Dict do módulo de coleções. O Ordered Dict nos permite criar o dicionário e iterar pelos itens. Porém, a representação do dicionário ao utilizar este módulo é bem diferente em comparação ao dicionário tradicional. Os itens são obtidos na forma de tuplas.
Sintaxe
OrderedDict([(key1, value1), (key2, value2), (key3, value3), other key-value pairs.....])
Ordered Dict' é o nome da classe do dicionário ordenado fornecido pelo 'módulo de coleções' do Python. Precisamos passar todos os pares de valores-chave como objetos Tuple e vírgulas separam os objetos Tuples. Podemos ter vários objetos de tupla e esse objeto de dicionário é iterável.
Exemplo
Neste código, primeiro importamos o módulo Ordered Dict da biblioteca de coleções do Python. A seguir, definimos nosso dicionário. Observe que os pares de valores-chave são separados por vírgulas e delimitados por tuplas. A seguir, definimos o sinalizador da variável found_current_key como false. Iteramos pelo dicionário e atualizamos o valor da variável next_key. Esta variável contém nosso resultado necessário. Observe que usamos o Ordered Dict; portanto, o dicionário agora é iterável.
from collections import OrderedDict
my_dict = OrderedDict([('apple', 1), ('banana', 2), ('orange', 3), ('kiwi', 4)])
current_key = 'orange'
next_key = None
found_current_key = False
print("The next element to banana is: ", end="")
for key in my_dict:
if found_current_key:
next_key = key
break
if key == current_key:
found_current_key = True
print(next_key)
Saída
The next element to banana is: kiwi
Usando o método keys() e um sinalizador
Se você não precisa manter a ordem das chaves, uma abordagem simples é usar o método keys() de um dicionário e uma variável de sinalização para rastrear a chave atual. A ideia é iterar pelas chaves do dicionário e, se a chave atual for encontrada, atualizar o valor da próxima chave. Observe que se usarmos o método keys do Python, obteremos todas as chaves na forma de listas. As listas são iteráveis e, portanto, podemos realizar esta iteração.
Exemplo
No código a seguir, criamos o dicionário e definimos o valor de current_key como “apple”. A seguir, definimos o valor da variável next_key como False. Iteramos pelas chaves do dicionário. Usamos uma declaração condicional. A instrução condicional verifica se o sinalizador found_current_key é verdadeiro e atribui a chave atual à next_key se for verdadeiro, interrompendo o loop. Se a chave atual for igual a current_key, o sinalizador found_current_key será verdadeiro.
my_dict = {'apple': 1, 'banana': 2, 'orange': 3, 'kiwi': 4}
current_key = 'apple'
next_key = None
found_current_key = False
print("The next element to banana is: ", end="")
for key in my_dict.keys():
if found_current_key:
next_key = key
break
if key == current_key:
found_current_key = True
print(next_key)
Saída
The next element to banana is: banana
Conclusão
Neste artigo, entendemos como obter a próxima chave do Dicionário em Python. Podemos utilizar a propriedade iterativa de uma lista ou tupla para coletar todas as chaves do dicionário e encontrar a próxima chave disponível. Python também nos oferece o módulo Ordered Dict, que podemos usar para iterar facilmente pelos itens do dicionário. O módulo nos fornece a capacidade de criar dicionários iterativos. Finalmente, podemos utilizar a chave e a bandeira para conseguir o mesmo.