Resumo dos Métodos Comuns de Dicionários em Python

Dicionários em Python são estruturas de dados que armazenam informações em pares de chave-valor. A principal vantagem dos dicionários é a eficiência ao acessar dados, pois utilizam hashing para localização rápida.

Características dos dicionários:

  1. Dicionários são estruturas não ordenadas, pois não utilizam índices numéricos, sim chaves para acessar os valores
  2. As chaves em um dicionário devem ser únicas, pois são utilizadas para identificação e acesso aos valores, garantindo eliminação natural de duplicatas
  3. Criando dicionários Dicionários são definidos utilizando chaves { }, com cada par chave-valor separado por vírgula e a chave e valor separados por dois pontos.
dado_pessoa = {'nome':'João Silva','genero':'Masculino','localização':'Brasil','idade':'30'}

  1. Operações básicas: adicionar, remover, modificar e consultar 2.1 Adicionando elementos
dado_pessoa['telefone']=21999999999    # Adiciona um novo par chave-valor, se a chave existir, atualiza o valor

dado_pessoa.setdefault('nome','Pedro')   # Se a chave existir, não modifica o valor existente, apenas adiciona se não existir

2.2 Removendo elementos

dado_pessoa.pop('nome')  # Remove um item específico pela chave

dado_pessoa.popitem()   # Remove um item aleatoriamente

del dado_pessoa['telefone'] # Remove um item específico pela chave

dado_pessoa.clear()   # Esvazia completamente o dicionário

2.3 Modificando elementos

info_adicional ={'a':'b'}

dado_pessoa.update(info_adicional)  # Mescla dicionários, adicionando elementos do segundo ao primeiro, atualizando se chaves existirem

dado_pessoa['nome']='Pedro'  # Se a chave existir, modifica o valor correspondente

2.4 Consultando elementos

print(dado_pessoa.get('nome'))  # Retorna None se a chave não existir

print(dado_pessoa.get('sobrenome','Desconhecido'))  # Retorna valor padrão se a chave não existir

print(dado_pessoa['sobrenome'])  # Gera erro se a chave não existir

2.4.1 Métodos embutidos de dicionários

print(dado_pessoa.keys())# Obtém todas as chaves do dicionário

print(dado_pessoa.values())# Obtém todos os valores do dicionário

print(dado_pessoa.items())# Obtém todos os pares chave-valor do dicionário

print(dado_pessoa.update(novas_info))# Atualiza valores do dicionário

print(dado_pessoa.items())   # Retorna uma visualização de lista (não é uma lista verdadeira)
# Resultado:
dict_items([('nome', 'João Silva'), ('genero', 'Masculino'), ('localização', 'Brasil'), ('idade', '30')])

print(list(dado_pessoa.items()))  # Converte pares chave-valor do dicionário em uma lista multidimensional
# Resultado:
[('nome', 'João Silva'), ('idade', '30'), ('localização', 'Brasil'), ('genero', 'Masculino')]

  1. Exemplo com dicionários aninhados
usuarios = {
    'usuario1':{
        'idade':25,
        'saldo':1000,
        'roupas':'5 peças',
        'hobbies':'muitos',
        'sapatos':['nike','adidas','puma','converse']

    },
    'usuario2':{
        'patrimônio':'50W',
        'imoveis':['centro','periferia'],
        'veiculos':{
            'alemanha':['bmw','mercedes','audi'],
            'japão':['toyota','honda','nissan'],
            'brasil':['fusca','gol','chevette']

        }
    }
}

print(usuarios['usuario2']['veiculos']['brasil'][1])  # Acessa 'gol'

print(usuarios['usuario1']['idade'])  # Acessa idade

a = usuarios['usuario1']['sapatos']=('sandália')  # Adiciona sandália aos sapatos do usuario1

b = usuarios['usuario1']['sapatos'].append('chinelo')

print(usuarios['usuario1']['sapatos'])

  1. Percorrendo dicionários Ao percorrer um dicionário diretamente, itera-se sobre as chaves
for usuario in usuarios:
     print(usuario)

Para obter chaves e valores simultaneamente durante a iteração:

for chave,valor in usuarios.items():  # Itera sobre chaves e valores simultaneamente

    print(chave,'===>',valor)

O operador 'in' em dicionários verifcia apenas a existência de chaves

contas ={
    'joao':'senha123',
    'maria':'321senha'
}

print('senha123' in contas)  # O operador 'in' verifica apenas chaves

# Resultado: False

  1. Ordenando dicionários Dicionários são estruturas não ordenadas, mas podemos ordenar seus itens
d ={'a':4,'b':2,'c':3}

# Não é possível ordenar diretamente um dicionário

print(d.items())  # Retorna uma visão de pares chave-valor

res = sorted(d.items(),key=lambda x:x[1])
         # O sorted ordena com base nos valores

print(res)

for k,v in res:

    print(k,v)

  1. Modificando chaves de dicionários Método: remover o par chave-valor original, salvar o valor, inserir com nova chave Formato: dict[nova_chave]=dict.pop(chave)
info = {'codigo':1, 'nome':"Carlos Silva"}
info['nome_completo'] = info.pop('nome')

print(info)
# Saída: {'codigo': 1, 'nome_completo': 'Carlos Silva'}

A expressão info.pop('nome') remove o par chave-valor correspondente a 'nome' e retorna seu valor; info['nome_completo'] adiciona uma nova chave com o valor retornado.

info = {'codigo':1, 'nome':"Carlos Silva"}
valor=info.pop('nome')

print(valor)
# Saída: Carlos Silva

6.1 Remoção em loop de pares chave-valor

lista_usuarios = [{'id':1, 'nome':"Carlos"},{'id':2, 'nome':"Maria"}]
for indice,usuario in enumerate(lista_usuarios):
        for chave in list(usuario.keys()):
            if chave=='id':
                usuario.pop('id')
print(lista_usuarios)
# Saída: [{'nome': 'Carlos'}, {'nome': 'Maria'}]

  1. Exercício prático com dicionários
for tentativa in range(3):
    login = input('Usuário:').strip()
    senha =input('Senha:').strip()
    confirmar_senha =input('Confirme a senha:').strip()
    if login == '' or senha == '':
        print('Usuário e senha não podem estar vazios')
    elif login in usuarios:
        print('Usuário já existe!')
    elif senha != confirmar_senha:
         print('As senhas não coincidem')
    else:
        print('Cadastro realizado com sucesso!')
        usuarios.setdefault(login,senha)
        break
 else:
     print('Número máximo de tentativas atingido')
 print(usuarios)

Tags: Python dicionários Estruturas de Dados programação

Publicado em 6-17 23:53