-
Vamos ver, agora,
a estrutura de dados
-
que foge um pouco das outras
que a gente já conhece:
-
Os dicionários.
-
As estruturas que a gente já
conhece se baseiam, basicamente,
-
na ideia de guardar
uma coleção de itens,
-
ou seja, armazenam,
de uma forma ou de outra,
-
alguns itens que, juntos,
formam um conjunto,
-
seja alguns que permitem
que a gente acesse indexação,
-
outros que garantem
imutabilidade
-
ou mesmo que impedem
que a gente repita itens lá dentro.
-
Cada um com seu propósito,
cada um com o seu objetivo.
-
Mas quando a gente
fala de dicionários,
-
a gente até pode usá-los
para guardar alguma coisa
-
que se pareça com uma lista,
-
mas o propósito inicial não
é necessariamente esse,
-
ele é mais focado em indexação
através de chaves e valores.
-
E, claro, ele não é
chamado assim à toa.
-
Imagine realmente como
funciona um dicionário,
-
imagine que você precisa pegar
o significado de alguma palavra.
-
Qual é a primeira coisa
que você vai fazer?
-
Achar a página onde aquela
palavra está escrita,
-
ou seja, essa palavra
é a sua chave
-
e o valor é a descrição que tem
o significado daquela palavra.
-
Dessa forma, quando a gente
trabalha com dicionários,
-
a gente tem que pensar nessa
estrutura de chave e valor.
-
A chave pode ser
algum tipo de índice,
-
algum ID ou qualquer
informação curta
-
que represente, que faça
uma referência para algo maior,
-
e o valor é justamente
esse algo maior.
-
Se a gente quiser
usar um dicionário
-
para guardar um banco
de dados, por exemplo,
-
a chave seria o ID
-
e o valor seria o registro
que está guardado naquele ID.
-
Entendeu, não é?
-
Então, vamos lá
para o código
-
ver como a gente constrói
um dicionário e usa ele.
-
Aqui dentro do VS Code, eu já
tenho o meu arquivo main.py,
-
e é aqui que a gente vai começar
a criar o nosso dicionário.
-
A estrutura que a gente
vai representar aqui
-
vai ser a de uma pessoa.
-
Então, vamos começar definindo,
aqui, uma variável "pessoa",
-
que vai receber a inicialização
desse nosso dicionário.
-
A inicialização
do dicionário no Python
-
é feita através
do símbolo de chaves
-
e a gente pode, ou não,
-
já começar a colocar os nossos
valores aqui dentro.
-
Vamos colocar um valor
logo na inicialização.
-
E lembre-se, diferente
das outras estruturas,
-
a gente tem que se
basear em chaves,
-
não as chaves caractere,
-
mas o índice que determina
o identificador daquele valor.
-
Traduzindo: a gente precisa
de uma informação pequena
-
para poder colocar
o valor do lado.
-
Então, como eu estou
tratando de uma pessoa,
-
a chave que eu vou adicionar
aqui vai ser o nome.
-
Então, eu vou colocar
aqui, entre aspas, "nome",
-
dois pontos e o valor que pode
ser, por exemplo, "Anna".
-
E pronto, está feito
o nosso dicionário.
-
Vamos executar o método print,
aqui, passando a variável pessoa
-
para a gente ver
como isso se comporta.
-
Aqui no terminal, então, eu vou
digitar "python.exe .\main.py"
-
e a gente consegue ver ali, já,
a estrutura do nosso dicionário,
-
com a propriedade
"nome" e o valor "Anna".
-
Mas a gente consegue deixar
isso um pouco mais complexo.
-
Imagine, por exemplo,
-
que essa pessoa tem vários
animais de estimação
-
e que cada um deles
tem um nome.
-
Então, a gente está
falando de uma chave
-
chamada "animais de estimação"
-
e a gente pode fazer isso
tanto na inicialização
-
quanto após a declaração
da variável, saca só.
-
Eu vou colocar,
aqui, "pessoa"
-
e eu vou usar os colchetes
para acessar uma nova chave
-
que eu vou chamar
de "animais_de"...
-
Eu vou deixar só "animais"
para ficar menor, tá?
-
E eu coloco, aqui na frente,
o valor que eu quero.
-
Anteriormente, a gente
criou a chave "nome"
-
e colocou um valor que era do tipo
string, "Anna", ou seja, texto.
-
Mas a gente não está
limitado a só esses tipos,
-
a gente pode usar qualquer
tipo que a gente quiser,
-
inclusive outras estruturas
de dados, como a lista.
-
E, por esse motivo, a gente
vai colocar aqui os colchetes,
-
para criar uma nova lista
de animais de estimação.
-
E eu vou começar, então,
colocando o nome de dois deles,
-
que vai ser "Bolinha" e "Floquinho",
que são os dois cachorros da Anna.
-
E se a gente executa aqui,
novamente, o nosso código,
-
a gente consegue
ver, aqui no terminal,
-
a chave "nome",
com o valor "Anna",
-
e a chave "animais",
-
com os valores "Bolinha"
e "Floquinho", que é uma lista.
-
Olha que legal,
-
a gente está conseguindo
constatar aquele comportamento
-
que a gente falou
mais cedo.
-
A gente até consegue
simular uma ideia de lista,
-
mas não é o foco aqui,
o foco aqui são as chaves,
-
que, por enquanto,
são "nome" e "animais".
-
A gente consegue adicionar
quantas a gente quiser
-
e, se a gente quiser, a gente
consegue também acessá-las
-
usando aquela chave
dentro dos colchetes,
-
da mesma forma que a gente
fez para atualizar.
-
Mas, se a gente quiser
apenas acessar,
-
podemos fazer isso sem
colocar nenhum valor na frente.
-
Olha só como é que a gente faz
para acessar o nome da Anna
-
individualmente,
caso a gente queira.
-
Basta que a gente venha
aqui onde está a pessoa,
-
que a gente sabe que é a Anna,
e coloque a chave "nome",
-
ou qualquer uma que a gente
queira, nesse caso, "nome".
-
Se a gente executar
novamente,
-
apenas o valor daquela
chave é exibido.
-
E se a gente quiser, também,
excluir uma chave existente,
-
é muito simples, a gente pode usar
a função nativa "del" do Python
-
e especificar qual chave
a gente quer excluir, veja só.
-
Imagine, por exemplo, que a gente
queira excluir a chave "nome"
-
logo depois de criar
a chave "animais".
-
A gente pode vir aqui e executar
a função de del, de "delete",
-
e passar para ela o objeto
ou o nosso dicionário "pessoa"
-
e informar a chave "nome".
-
Dessa forma, eu falei para
o Python criar um dicionário
-
que tem uma chave "pessoa",
-
depois, criar uma chave, lá dentro,
chamada "animais" com esse valor
-
e excluir a chave "nome".
-
Veja só o que acontece se eu
mantiver o código dessa forma
-
enquanto ele tenta acessar a chave
"nome" que eu acabei de excluir?
-
O Python dá um erro,
-
porque essa chave simplesmente
não existe naquele dicionário.
-
Embora a gente tenha
esse acesso fácil,
-
se a gente tentar acessar
uma chave que não existe,
-
o Python vai dar um erro
-
e o nosso programa pode
acabar sendo encerrado.
-
E, caso a gente
queira evitar isso,
-
a gente pode usar o método
"get" do dicionário
-
para recuperar uma chave,
caso ela exista,
-
ou retornar um valor
padrão, saca só.
-
Imagine que, aqui, eu queira,
de fato, pegar o resultado,
-
o valor da propriedade
"nome", ou da chave "nome".
-
Eu posso tentar vir aqui
e executar o método get
-
informando para ele a chave
que eu quero acessar.
-
Só de fazer isso, ao executar,
novamente, o nosso programa,
-
o Python não retorna mais um erro,
mas sim a informação "none",
-
indicando que aquela
chave não existe
-
e por isso o Python retornou
o valor que não significa nada,
-
ou seja, eu fui lá, tentei
acessar, não existia,
-
então eu te retornei nada.
-
Mas, caso a gente queira,
-
esse método também permite
que a gente informe um valor padrão
-
para quando essa
chave não existe.
-
Então, imagine que,
ao acessar uma pessoa,
-
a propriedade ou a chave
"nome" de uma pessoa,
-
que não está definida, eu retorne,
por exemplo, "nao definido".
-
E se a gente executar, novamente,
o nosso programa, ele não dá erro,
-
não exibe o nome, mas sim o valor
que a gente definiu por padrão.
-
E, com isso, a gente conseguiu
entender as características básicas
-
e as operações principais
desse tipo de dado aqui.
-
E, embora o dicionário
seja um pouco diferente
-
dos tipos que nós
já conhecemos,
-
a gente também consegue usar
ele para representar listas
-
ou coisas do tipo.
-
Como eu disse anteriormente,
-
se a gente tiver
uma lista de usuários,
-
a gente pode usar a chave
para colocar o ID desse usuário,
-
ou o mesmo nome.
-
Dessa forma, a gente consegue
iterar sobre as chaves,
-
acessando o nome, ou o ID,
ou até mesmo um documento,
-
e acessar o valor apenas
quando necessário.
-
E, dessa forma, a gente consegue
criar, de fato, um catálogo
-
em que a gente consegue acessar
os itens de forma rápida e concisa,
-
sem necessariamente ter
que iterar em todos eles
-
procurando algum
valor específico.