Python - tabela de hash

As tabelas de hash são um tipo de estrutura de dados em que o endereço ou o valor do índice do elemento de dados é gerado a partir de uma função hash. Isso torna o acesso aos dados mais rápido, pois o valor do índice se comporta como uma chave para o valor dos dados. Em outras palavras, a tabela de hash armazena pares de valores-chave, mas a chave é gerada por meio de uma função de hash.

Portanto, a função de pesquisa e inserção de um elemento de dados torna-se muito mais rápida à medida que os próprios valores-chave se tornam o índice do array que armazena os dados.

Em Python, os tipos de dados de Dicionário representam a implementação de tabelas hash. As Chaves no dicionário atendem aos seguintes requisitos.

  • As chaves do dicionário são hashble, ou seja, são geradas pela função hash que gera um resultado único para cada valor único fornecido à função hash.
  • A ordem dos elementos de dados em um dicionário não é fixa.

Portanto, vemos a implementação da tabela de hash usando os tipos de dados do dicionário conforme abaixo.

Acessando Valores no Dicionário

Para acessar os elementos do dicionário, você pode usar os familiares colchetes junto com a chave para obter seu valor.

# Declare a dictionary 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

# Accessing the dictionary with its key
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

Quando o código acima é executado, ele produz o seguinte resultado -

dict['Name']:  Zara
dict['Age']:  7

Atualizando Dicionário

Você pode atualizar um dicionário adicionando uma nova entrada ou um par de valores-chave, modificando uma entrada existente ou excluindo uma entrada existente, conforme mostrado abaixo no exemplo simples -

# Declare a dictionary
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Quando o código acima é executado, ele produz o seguinte resultado -

When the above code is executed, it produces the following result −
dict['Age']:  8
dict['School']:  DPS School

Excluir Elementos do Dicionário

Você pode remover elementos individuais do dicionário ou limpar todo o conteúdo de um dicionário. Você também pode excluir o dicionário inteiro em uma única operação. Para remover explicitamente um dicionário inteiro, basta usar a instrução del. -

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear();     # remove all entries in dict
del dict ;        # delete entire dictionary

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Isso produz o seguinte resultado. Observe que uma exceção é levantada porque após o dicionário del dict não existe mais -

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in 
      
        print "dict['Age']: ", dict['Age']; TypeError: 'type' object is unsubscriptable