Mandar um café pro programador

Pode me ajudar a transformar cafeína em código?

Como adicionar, Alterar e Retirar um Item num Dicionário em Python

Neste tutorial de nosso Curso de Python, vamos aprender como adicionar um novo item em um dicionário, alterar algum valor já existente e retirar algum item do dictionary.

Aprenda primeiro:

Adicionar item em um Dicionário


Vamos pegar o nosso bom e velho dicionário notas:
notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

Vamos supor que chegou um novo aluno, o Peart, que já chegou tirando nota 10 também.
No tutorial anterior (método get e setdefault - Como usar), aprendemos como inserir um valor através do método setdefault.

Você também pode inserir um item em um dicionário dict com chave key e valor value simplesmente fazendo a operação direta:

  • dict[ key ] = value


Por exemplo, vamos adicionar o aluno Peart:

notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

notas['Peart'] = 10
print(notas)

Simples, não é verdade?
Mas, cuidado, se esta chave já existir, ele vai substituir o valor anterior.

Por isso, é bom só fazer isso se não existir essa nova chave.
Podemos checar isso com o get.

O script abaixo pergunta um nome e uma nota.
Se este nome já existir, o método notas.get(nome) vai retornar algum valor do dicionário, e cai no IF dizendo que o nome já existe.

Se a chave não existir, retorna None por padrão, o método get(), então cai no ELSE, onde fazemos a atribuição e inserimos um novo item no dicionário, veja:

notas={'João'   :  9,
       'Maria'  : 10,
       'José'   : 4  }

nome = input("Digite o nome do aluno: ")
nota = float(input("Nota dele: "))

if notas.get(nome):
    print("Ja existe o aluno ",nome)
else:
    notas[nome] = nota
print(notas)




Como Alterar um Item: in

Agora, vamos aprender como mudar o valor de um determinado item.

A primeira coisa que devemos fazer é confirmar se realmente aquele item existe.
E podemos fazer isso com a instrução in.

Se fizermos key in notas.keys()
Ele vai avaliar se a chave key está na lista de valores de notas.keys()
Se sim, retorna True e cai no IF para podermos alterar o valor.

Se não tiver, retorna False e no ELSE dizemos que o aluno não existe, logo não dá pra alterar o valor dele.

Então, nosso script pra alterar alguma nota, ficaria assim:

notas={'João'   :  9,
       'Maria'  : 10,
       'José'   : 4  }

nome = input("Aluno a mudar a nota: ")
nota = float(input("Nova nota     : "))

if nome in notas.keys():
    notas[nome] = nota
else:
    print("Não existe esse aluno")
print(notas)




Como excluir um item: pop()

Para excluirmos um determinado item, basta usarmos o método pop() que vai receber a key de deletar o item cuja chave é aquela.

Por exemplo, para retirarmos o 'José' do dicionário:

notas={'João'   :  9,
       'Maria'  : 10,
       'José'   : 4  }

print(notas)
notas.pop('José')
print(notas)

O resultado é:

Como adicionar, alterar ou excluir um item de um dicionário em Python


Exercício de Dicionários em Python

Uma escola te contratou para fazer um software em Python.
Eles querem que você crie um script que exiba o seguinte menu:

0. Sair
1. Exibir lista de alunos com suas notas (cada aluno tem uma nota)
2. Inserir aluno e nota
3. Alterar a nota de um aluno
4. Consultar nota de um aluno específico
5. Apagar um aluno da lista
6. Dar a média da turma

Onde a professora que vai fornecer o nome e nota dos alunos. Quantos ela quiser. Quantas vezes quiser.
Implemente esse script usando um dicionário.

Solução: Como usar dicionários em Python

2 comentários:

  1. Olá! Excelente site... Poderia avaliar se minha resposta foi bem desenvolvida?

    def menu():
    print('0. Sair');
    print('1. Exibir lista de alunos com suas notas (cada aluno tem uma nota)');
    print('2. Inserir aluno e nota');
    print('3. Alterar a nota de um aluno');
    print('4. Consultar nota de um aluno específico');
    print('5. Apagar aluno da lista');
    print('6. Dar a média da turma');
    opc = int(input("> "));
    return opc;

    alunos = {
    'Joao': 10.0,
    'Maria': 9.0,
    'Jose': 10.0
    }

    def aluno(act=1,aluno='',nota=0.0):

    if ( act != 0 and act != 1 and act != 6 ):
    nomeAluno = input('Digite nome aluno: ');

    if ( act == 2 ):
    if nomeAluno not in alunos.keys():
    alunos[nomeAluno] = nota;
    else:
    print(nomeAluno + 'já existe na base.');
    elif ( act == 3 ):
    if nomeAluno in alunos.keys():
    alunos[nomeAluno] = nota;
    else:
    print(nomeAluno + 'não existe na base.');
    elif ( act == 4 ):
    if nomeAluno in alunos.keys():
    print(nomeAluno + 'tem nota igual a' + alunos[nomeAluno]);
    else:
    print(nomeAluno + 'não tem nota ou existe na base.');
    elif ( act == 5 ):
    if nomeAluno in alunos.keys():
    alunos.pop(nomeAluno);
    print(nomeAluno + 'excluido da base.');
    else:
    print(nomeAluno + 'não existe na base.');
    else:
    if ( act == 6 ):
    tamanho = len(alunos);
    totalNotas = 0.0;
    for notaAluno in alunos.values():
    totalNotas += notaAluno;
    media = totalNotas / tamanho;
    print("A media é %.2f do total de notas %.2f" %(media, totalNotas));
    if ( act == 1 ):
    for nomeAluno in alunos.keys():
    print('Aluno ' + nomeAluno + ' nota', alunos[nomeAluno]);

    cont = True;

    while cont:
    cont = menu();
    if cont == 1:
    aluno();
    elif cont == 2:
    notaAluno = float(input('Digite nota aluno: '));
    aluno(2,nota=notaAluno);
    elif cont == 3:
    notaAluno = float(input('Digite nova nota aluno: '));
    aluno(3,nota=notaAluno);
    elif cont == 4:
    aluno(4);
    elif cont == 5:
    aluno(5);
    elif cont == 6:
    aluno(6);

    ResponderExcluir
  2. Eu fiz assim:

    def menu():
    sair = int(input('Ddigite 0 para sair ou 1 para prosseguir: '))
    if sair==1:
    print('1. Exibir lista de alunos com sua notaAlternar a nota de um aluno\n2. Alternar a nota de um aluno\n3. Inserir aluno e nota\n4. Consultar nota de um aluno específico\n5. Apagar um aluno da lista\n6. Dar a média da turma')
    op = int(input('Escolha uma opção: '))

    if op==2:
    alternar()
    elif op==1:
    exib()
    elif op==3:
    inserir()
    elif op==4:
    consult()
    elif op==5:
    apagar()
    elif op==6:
    media()
    else:
    print('Opção inválida.')


    def exib():
    notas={'João' : 9,
    'Maria' : 10,
    'José': 4}

    for nome in notas.keys():
    print(nome," tirou nota: ", notas[nome])

    def alternar():

    notas={'João' : 9,
    'Maria' : 10,
    'José' : 4 }

    nome = input("Aluno a mudar a nota: ")
    nota = float(input("Nova nota : "))

    if nome in notas.keys():
    notas[nome] = nota
    else:
    print("Não existe esse aluno")
    print(notas)


    def inserir():
    notas={'João' : 9,
    'Maria' : 10,
    'José' : 4 }
    nome = input("Digite o nome do aluno: ")
    nota = float(input("Nota dele: "))

    if notas.get(nome):
    print("Ja existe o aluno ",nome)
    else:
    notas[nome] = nota
    print(notas)

    def apagar():
    notas={'João' : 9,
    'Maria' : 10,
    'José' : 4 }

    nome=input('Quem você deseja excluir: ')
    notas.pop(nome)
    print(notas)









    nao consegui fazer o 4 e nem o 6 :(

    ResponderExcluir

Bora fazer evoluir o ensino da Programação no Brasil ?

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo