1 of 29

[1]

Programador de sistemas Python

Dicionários

2 of 29

[2]

Entender o funcionamento da estrutura de dados dicionário.

Objetivo Geral

3 of 29

[3]

  • Python 3
  • VSCode

Pré-requisitos

4 of 29

[4]

Percurso

Etapa 1

Criação e acesso aos dados

Etapa 2

Métodos da classe dict

5 of 29

[5]

Etapa 1

Criação e acesso aos dados

6 of 29

[6]

Um dicionário é um conjunto não-ordenado de pares chave:valor, onde as chaves são únicas em uma dada instância do dicionário. Dicionários são delimitados por chaves: {}, e contém uma lista de pares chave:valor separada por vírgulas.

Criando dicionários

7 of 29

[7]

Exemplo

pessoa = {"nome": "Guilherme", "idade": 28}��pessoa = dict(nome="Guilherme", idade=28)��pessoa["telefone"] = "3333-1234" # {"nome": "Guilherme", "idade": 28, "telefone": "3333-1234"}

8 of 29

[8]

Os dados são acessados e modificados através da chave.

Acesso aos dados

9 of 29

[9]

Exemplo

dados = {"nome": "Guilherme", "idade": 28, "telefone": "3333-1234"}��dados["nome"] # "Guilherme"�dados["idade"] # 28�dados["telefone"] # "3333-1234"��dados["nome"] = "Maria"�dados["idade"] = 18�dados["telefone"] = "9988-1781"��dados # {"nome": "Maria", "idade": 18, "telefone": "9988-1781"}

10 of 29

[10]

Dicionários podem armazenar qualquer tipo de objeto Python como valor, desde que a chave para esse valor seja um objeto imutável como (strings e números).

Dicionários aninhados

11 of 29

[11]

Exemplo

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"},� "giovanna@gmail.com": {"nome": "Giovanna", "telefone": "3443-2121"},� "chappie@gmail.com": {"nome": "Chappie", "telefone": "3344-9871"},� "melaine@gmail.com": {"nome": "Melaine", "telefone": "3333-7766"},�}��contatos["giovanna@gmail.com"]["telefone"] # "3443-2121"

12 of 29

[12]

A forma mais comum para percorrer os dados de um dicionário é utilizando o comando for.

Iterar dicionários

13 of 29

[13]

Exemplo

for chave in contatos:� print(chave, contatos[chave])��for chave, valor in contatos.items():� print(chave, valor)��# guilherme@gmail.com {'nome': 'Guilherme', 'telefone': '3333-2221'}# giovanna@gmail.com {'nome': 'Giovanna', 'telefone': '3443-2121'}# chappie@gmail.com {'nome': 'Chappie', 'telefone': '3344-9871'}# melaine@gmail.com {'nome': 'Melaine', 'telefone': '3333-7766'}

14 of 29

[14]

Percurso

Etapa 1

Criação e acesso aos dados

Etapa 2

Métodos da classe dict

15 of 29

[15]

Etapa 2

Métodos da classe dict

16 of 29

[16]

{}.clear

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"},� "giovanna@gmail.com": {"nome": "Giovanna", "telefone": "3443-2121"},� "chappie@gmail.com": {"nome": "Chappie", "telefone": "3344-9871"},� "melaine@gmail.com": {"nome": "Melaine", "telefone": "3333-7766"},�}��contatos.clear()�contatos # {}

17 of 29

[17]

{}.copy

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"}�}��copia = contatos.copy()�copia["guilherme@gmail.com"] = {"nome": "Gui"}��contatos["guilherme@gmail.com"] # {"nome": "Guilherme", "telefone": "3333-2221"}�copia["guilherme@gmail.com"] # {"nome": "Gui"}

18 of 29

[18]

{}.fromkeys

dict.fromkeys(["nome", "telefone"]) # {"nome": None, "telefone": None}��dict.fromkeys(["nome", "telefone"], "vazio") # {"nome": "vazio", "telefone": "vazio"}

19 of 29

[19]

{}.get

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"}�}��contatos["chave"] # KeyError

�contatos.get("chave") # None�contatos.get("chave", {}) # {}�contatos.get("guilherme@gmail.com", {}) # {"guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"}

20 of 29

[20]

{}.items

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}�}��contatos.items() # dict_items([('guilherme@gmail.com', {'nome': 'Guilherme', 'telefone': '3333-2221'})])

21 of 29

[21]

{}.keys

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}�}��contatos.keys() # dict_keys(['guilherme@gmail.com'])

22 of 29

[22]

{}.pop

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}�}��contatos.pop("guilherme@gmail.com") # {'nome': 'Guilherme', 'telefone': '3333-2221'}

contatos.pop("guilherme@gmail.com", {}) # {}

23 of 29

[23]

{}.popitem

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}�}��contatos.popitem() # ('guilherme@gmail.com', {'nome': 'Guilherme', 'telefone': '3333-2221'})�contatos.popitem() # KeyError

24 of 29

[24]

{}.setdefault

contato = {'nome': 'Guilherme', 'telefone': '3333-2221'}��contato.setdefault("nome", "Giovanna") # "Guilherme"�contato # {'nome': 'Guilherme', 'telefone': '3333-2221'}

�contato.setdefault("idade", 28) # 28�contato # {'nome': 'Guilherme', 'telefone': '3333-2221', 'idade': 28}

25 of 29

[25]

{}.update

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}�}��contatos.update({"guilherme@gmail.com": {"nome": "Gui"}})�contatos # {'guilherme@gmail.com': {'nome': 'Gui'}}��contatos.update({"giovanna@gmail.com": {"nome": "Giovanna", "telefone": "3322-8181"}})�contatos # {'guilherme@gmail.com': {'nome': 'Gui'}, 'giovanna@gmail.com': {'nome': 'Giovanna', 'telefone': '3322-8181'}}

26 of 29

[26]

{}.values

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"},� "giovanna@gmail.com": {"nome": "Giovanna", "telefone": "3443-2121"},� "chappie@gmail.com": {"nome": "Chappie", "telefone": "3344-9871"},� "melaine@gmail.com": {"nome": "Melaine", "telefone": "3333-7766"},�}��contatos.values() # dict_values([{'nome': 'Guilherme', 'telefone': '3333-2221'}, {'nome': 'Giovanna', 'telefone': '3443-2121'}, {'nome': 'Chappie', 'telefone': '3344-9871'}, {'nome': 'Melaine', 'telefone': '3333-7766'}])

27 of 29

[27]

in

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"},� "giovanna@gmail.com": {"nome": "Giovanna", "telefone": "3443-2121"},� "chappie@gmail.com": {"nome": "Chappie", "telefone": "3344-9871"},� "melaine@gmail.com": {"nome": "Melaine", "telefone": "3333-7766"},�}��"guilherme@gmail.com" in contatos # True"megui@gmail.com" in contatos # False"idade" in contatos["guilherme@gmail.com"] # False"telefone" in contatos["giovanna@gmail.com"] # True

28 of 29

[28]

del

contatos = {� "guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"},� "giovanna@gmail.com": {"nome": "Giovanna", "telefone": "3443-2121"},� "chappie@gmail.com": {"nome": "Chappie", "telefone": "3344-9871"},� "melaine@gmail.com": {"nome": "Melaine", "telefone": "3333-7766"},�}��del contatos["guilherme@gmail.com"]["telefone"]�del contatos["chappie@gmail.com"] ��contatos # {'guilherme@gmail.com': {'nome': 'Guilherme'}, 'giovanna@gmail.com': {'nome': 'Giovanna', 'telefone': '3443-2121'}, 'melaine@gmail.com': {'nome': 'Melaine', 'telefone': '3333-7766'}}

29 of 29

[29]

Percurso

Etapa 1

Criação e acesso aos dados

Etapa 2

Métodos da classe tuple