Baixe o app para aproveitar ainda mais
Prévia do material em texto
Dicionário INE 5201 – Python 3 {‘chave’: valor} {‘key1’: value1, ‘key2’: value2} Hash Table 4.3 Operação com sequências - dicionário Dicionários consistem em uma estrutura de dados similar às listas, com propriedades de acesso diferentes. O conteúdo de um dicionário pode ser escrito como uma série de pares {chave: valor}, denominado de itens, dentro de chaves { }, por exemplo, dict = {key1: valor1 , key2: valor2 , ..., .. }. INE 5201 – Python 3 key1 key2 key3 key4 valor1 valor2 valor3 valor4 keys values dicionário 4.3 Operação com sequências - dicionário A criação de um dicionário vazio é apenas referenciado com um par vazio de chaves {}, exemplo: Exemplo de criação de dicionários: INE 5201 – Python 3 keys values produtos 4.3 Operação com sequências - dicionário Mais exemplos de criação de dicionários: INE 5201 – Python 3 keys values elementos 4.3 Operação com sequências - dicionário Um dicionário é acessado por suas chaves (keys), exemplo: O dicionário chamado produtos possui valores (values) associados às chaves (keys), assim podemos verificar qual é o valor associado a chave ‘Qualidade’. Observe que o valor retornado é ‘alta’. INE 5201 – Python 3 keys values produtos A sintaxe é consistente, tanto para dicionários, listas ou string. Exemplo para dicionários dicionario[chave] para listas e strings listas[índice], string[índice] 4.3 Operação com sequências - dicionário Diferentemente das listas, onde o índice é um número (0, 1, 2, ...), dicionários utilizam suas chaves (keys) como índice. Quando atribuímos ( ) um valor a uma chave, duas coisas podem ocorrer: 1. Se a chave já existe: o valor associado é alterado para o novo valor; 2. Se a chave não existe: a nova chave será adicionada ao dicionário; Exemplos: INE 5201 – Python 3 4.3 Operação com sequências - dicionário INE 5201 – Python 3 1. Se a chave já existe: o valor associado é alterado para o novo valor; 4.3 Operação com sequências - dicionário INE 5201 – Python 3 2. Se a chave não existe: a nova chave será adicionada ao dicionário (um novo item); 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Acessando uma chave inexistente: Se a chave não existir, uma exceção do tipo será ativada. Para evitar o erro ao procurar por um item (chave: valor) utilize o método dict.get(). No caso do método não encontrar a chave, ele retorna None e não uma exceção . 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Verificando a existência de uma chave: Utilização da instrução in: >> chave in dicionário ? >> retorna True ou False Verificando se a chave (keys) está no dicionário, exemplo: 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Deletando um item (chave:valor) do dicionário: Utilização da instrução del: >> del dicionário[chave] >> deleta o item (chave: valor) Deletando com del o item associado à chave (keys) no dicionário: 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Métodos utilizados em dicionários - .get() .keys() .values() .items(): 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Método .get(): Alterando o opcional d no método .get(): Configurando a resposta padrão d = None, para d = ‘Chave não encontrada’. Configurando a resposta padrão d = None, para d = 0. 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Método .keys(): Obtendo as somente as keys de um dicionário: 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Método .values(): Obtendo as somente os values de um dicionário: 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Método .items(): Obtendo os itens de um dicionário: Retorna uma tupla com (chave, valor). 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Obtendo valores em um dicionário: Teste o script 01 no seu computador Script 01: 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Dicionários com listas: Os valores de uma chave podem ser listas, exemplo: keys values amostras 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Acessando os valores das listas do dicionário: 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Dicionários com dicionários: Os valores de uma chave podem ser dicionários, exemplo: keys values amostras 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Acessando os valores do dicionários: keys values amostras 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Loops em dicionários (chaves): Da mesma forma: 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Loops em dicionários (valores): 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Exercício 1 – parte 1: Crie um dicionário com 6 itens: - As chaves podem ser strings ou números; - Os valores podem ser strings, números, listas ou dicionários; Faça um loop para imprimir somente os valores do dicionário Faça um loop para imprimir somente as chaves do dicionário Faça um loop para imprimir a chave e o valor do dicionário. Ou seja a cada chave lida, imprima sua chave e seu valor. 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Ordenando a saída do dicionário – sorted(): 4.3 Operação com sequências - dicionário INE 5201 – Python 3 items(): Ordenando a saída do dicionário – sorted(): 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Mais loops: 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Usando o método str.format() para strings, para atribuir nomes à chaves de forma automática em dicionário, com um loop: Método .format() aplicado à strings: Exemplos: 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Método .format() aplicado à strings, mais exemplos: 0 1 0 1 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Método .format() aplicado à strings, mais exemplos: 0 1 0 1 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Usando o método str.format() para strings, para atribuir nomes à chaves de forma automática em dicionário, com um loop: Dicionário exercícios INE 5201 – Python 3 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Script 02 4.3 Operação com sequências - dicionário INE 5201 – Python 3 O script se refere a uma relação de estoque de mercadorias, onde possuímos além do preço uma quantidade em estoque. No dicionário temos o produto, a quantidade em estoque e o preço: No script são feitas algumas operações de vendas, onde ocorre a saída de alguns produtos, ocasionando a redução na quantidade em estoque. Vamos detalhar o script em partes: No loop for, à é atribuída um lista de dois elementos;Pois ´é uma lista onde cada elemento é uma lista com dois elementos. Assim, Na primeira iteração Na segunda iteração 4.3 Operação com sequências - dicionário INE 5201 – Python 3 utilizamos aqui um desempacotamento dos elementos. Onde, na primeira iteração , assim, é o mesmo que: Consequentemente 4.3 Operação com sequências - dicionário INE 5201 – Python 3 utilizamos aqui o conteúdo de como chave no dicionário . Como nossos dados são uma lista, escolhemos o segundo elemento, que armazena o preço do referido produto. Observe que atribuir nomes a cada um desses componentes facilita a leitura do programa. 4.3 Operação com sequências - dicionário INE 5201 – Python 3 utilizamos aqui uma formatação especial, fazendo uso dos marcadores de string . Exemplos Faça outros testes com os marcadores e avalie sua funcionalidade. 4.3 Operação com sequências - dicionário INE 5201 – Python 3 atualizamos a quantidade em estoque subtraindo a quantidade vendida do estoque atual. 4.3 Operação com sequências - dicionário INE 5201 – Python 3 utilizamos o método .items() do objeto estoque. O método retorna uma tupla contendo, (chave, valor), de cada item armazenado no dicionário. Usando um loop for com duas variáveis efetuamos o desempacotamento desses valores em uma passagem só. Para entender melhor como isso acontece, experimente alterar o script para exibir valores de chave e dados a cada iteração. 4.3 Operação com sequências - dicionário INE 5201 – Python 3 Exercícios: Exercício 2: Altere o script 02 de forma a solicitar ao usuário o produto e a quantidade vendida. Verifique se o nome do produto digitado existe no dicionário e só então efetue a baixa em estoque. Exercício 3: Escreva um programa que gere um dicionário, onde cada chave seja um caractere e seu valor seja o número de vezes que esse caractere é encontrado em uma frase lida.
Compartilhar