Uma poderosa ferramenta para turbinar seu código
Dicionários são uma espécie de lista, em que os índices, ao invés de uma sequência de inteiros começando em zero, são chaves que você mesmo fornece. É muito parecido com um dicionário de verdade, com verbetes e suas definições.
Vejemos um exemplo. Vamos criar um dicionário:
meu_dicio = {'o': 'the', 'livro': 'book', 'está': 'is', 'sobre': 'on', 'a': 'the', 'mesa': 'table'}
A variável meu_dicio
contém o dicionário. Os valores antes dos dois-pontos (:
) são as chaves (keys) e os demais valores são os itens (items) indexados pelas chaves. Por exemplo,
meu_dicio['o']
retorna the
.
Os dois comandos a seguir usam um recurso chamado list comprehension, que vimos na lição anterior:
print([x for x in meu_dicio])
print([meu_dicio[x] for x in meu_dicio])
Rode-os em python e tente entender a saída.
O comando
palavra='mesa'
print(f'{palavra} em inglês é {meu_dicio[palavra]}')
retorna mesa em inglês é table
Mais um exemplo:
palavra_pt = 'caderno'
if palavra_pt in meu_dicio:
# o operador in opera recursivamente por todas as chaves em meu_dicio
print(f'Eu sei traduzir {palavra_pt} pro inglês: {meu_dicio[palavra_pt]}' )
else:
print(f'Não faço ideia de como é \'{palavra_pt}\' em inglês')
Qual é a saída desse código?
As chaves e os itens não precisam necessariamente ser strings. Veja o seguinte exemplo:
dicio = {3: 5, 3.141593: 'pi', 'e': 2.718282}
print(dicio[3])
print(dicio[3.141593])
print(dicio['e'])
O que esses comandos print
imprimem?
Uma vez criado um dicionário, é possível acrescentar, remover ou alterar valores. Veja os exemplos abaixo:
dicio = {'animal': 'cachorro', 'fruta': 'laranja', 'cidade': 'Lorena', 'cor': 'vermelho'}
# Acrescentar um valor:
dicio['estado'] = 'SP'
# Alterar um valor:
dicio['animal'] = 'gato'
# Remover um valor
dicio.pop('cor')
Também é possível pesquisar no sentido contrário, apesar de ser um pouco mais complicado (não será usado nesse curso). Para isso, não podem haver chaves repetidas, mas itens repetidos são permitidos (por exemplo, ‘the’ no dicionário meu_dicio
). Um exemplo:
palavra_en = 'the'
[chave for chave, item in meu_dicio.items() if item is palavra_en]
Página atualizada em 07/06/20