Flashcard FC213975
Como garantir que, ao atualizar a contagem de uma palavra numa lista de pares [palavra, contagem], não seja acrescentada uma entrada duplicada?
Linguagens de Programação
CESGRANRIO · 2024
Como garantir que, ao atualizar a contagem de uma palavra numa lista de pares [palavra, contagem], não seja acrescentada uma entrada duplicada?
Mostrar resposta e comentário
Resposta
Percorrendo a lista, comparar cada lista[i][0] com a palavra; ao encontrar, incrementar lista[i][1] e usar return para sair; se o loop terminar sem encontrar, usar lista.append([palavra,1]).
Explicação:
Percorra os índices das sublistas para poder alterar a contagem diretamente (mutabilidade).
Ao localizar correspondência, incremente a posição 1 da sublista e saia imediatamente com return — isso evita que, depois de atualizar, a função continue e adicione um novo par.
Se o loop terminar sem encontrar a palavra, adicione no final com contagem 1. Essa abordagem opera in-place e tem custo linear no número de entradas.
Percorra os índices das sublistas para poder alterar a contagem diretamente (mutabilidade).
Ao localizar correspondência, incremente a posição 1 da sublista e saia imediatamente com return — isso evita que, depois de atualizar, a função continue e adicione um novo par.
Se o loop terminar sem encontrar a palavra, adicione no final com contagem 1. Essa abordagem opera in-place e tem custo linear no número de entradas.
Exemplo:
Lista inicial: [["maçã",2], ["laranja",1]]
Chamada: inclui(lista, "laranja") — após a execução: [["maçã",2], ["laranja",2]]
Chamada: inclui(lista, "uva") — após a execução: [["maçã",2], ["laranja",2], ["uva",1]]
Código ilustrativo:
Lista inicial: [["maçã",2], ["laranja",1]]
Chamada: inclui(lista, "laranja") — após a execução: [["maçã",2], ["laranja",2]]
Chamada: inclui(lista, "uva") — após a execução: [["maçã",2], ["laranja",2], ["uva",1]]
Código ilustrativo:
def inclui(lista, subst):
for i in range(len(lista)):
if lista[i][0] == subst:
lista[i][1] += 1
return
lista.append([subst, 1])Veja como foi cobrado:
https://flashcardsconcursos.com.br/portal/flashcard/213569
Conteúdo do catálogo FC Concursos · Atualizado em