Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Default dict: qual o sentido da mudança ( ) por [ ]

Olá, não compreendi como o código seguinte:

meu_texto = "Bem vindo meu nome é Guilherme eu gosto muito de nomes e tenho o meu cachorro e gosto muito de cachorro"
meu_texto = meu_texto.lower()

aparicoes = {}

for palavra in meu_texto.split():
  ate_agora = aparicoes.get(palavra, 0)
  aparicoes[palavra] = ate_agora +1

aparicoes

antes de tirar o "get", palavra era em parênteses e após incluir o defaultdict, é trocado por colchetes:

from collections import defaultdict

aparicoes = defaultdict(int)

for palavra in meu_texto.split():
  ate_agora = aparicoes[palavra]
  aparicoes[palavra] = ate_agora +1

aparicoes

E caso permaneçamos usando parênteses, ocorre um erro.

2 respostas
solução!

Bom dia, Tatiana!

No primeiro caso, estamos utilizando um método de dicionários feito para resgatar um valor a partir de sua chave. Caso não haja essa chave, será retornado 0 no lugar. Assim como em funções normais, colocamos os argumentos entre parênteses, delimitando o que será passado para a função. No segundo caso, entretanto, os colchetes tem a função não de passar argumentos para uma função, mas sim referenciar diretamente a chave dentro do dicionário para localizar seu valor. São duas formas distintas de encontrar um valor dentro de um dicionário passando a sua chave. A maior diferença entre os dois casos é que, no segundo, se a chave não existir, o programa levantará um erro e impedirá que o código siga. No primeiro caso, entretanto, se a chave não for encontrada o valor 0 será retornado por padrão, não atrapalhando o andamento do código.

Os parênteses e os colchetes não são interchangeable (não podem ser usados um no lugar do outro e vice-versa). Cada um deles tem o seu propósito dentro do python e por isso que há erro quando fazemos aparicoes(palavra).

Espero ter ajudado! Um abraço!

muito obrigada, tirou minha dúvida. :D