Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas

Dicionário em Python

Este guia abrangente explica dicionários Python — como criá-los, acessar, adicionar, deletar elementos e aproveitar métodos built-in.

Vídeo: Dicionários Python para Armazenar Pares Chave/Valor

Dicionários Python são coleções não ordenadas de pares chave/valor. Cada entrada associa uma chave única e imutável a um valor que pode ser de qualquer tipo.


Criando um Dicionário Python

Definir um dicionário é direto: coloque pares chave/valor separados por vírgula dentro de chaves {}. Chaves devem ser imutáveis (strings, números, ou tuplas de elementos imutáveis) e únicas; valores podem ser qualquer tipo de dado e podem se repetir.

# dicionário vazio
my_dict = {}
# dicionário com chaves inteiras
my_dict = {1: 'apple', 2: 'ball'}
# dicionário com chaves mistas
my_dict = {'name': 'John', 1: [2, 4, 3]}
# usando dict()
my_dict = dict({1:'apple', 2:'ball'})
# a partir de sequência de pares
my_dict = dict([(1,'apple'), (2,'ball')])

Todas as abordagens acima criam a mesma estrutura de dicionário.


Acessando Elementos de um Dicionário

Valores de dicionário são recuperados via suas chaves, seja com colchetes [] ou método get(). Usar colchetes levanta KeyError se chave ausente; get() retorna None por padrão.

# get vs [] para recuperar elementos
my_dict = {'name': 'Jack', 'age': 26}
# Saída: Jack
print(my_dict['name'])
# Saída: 26
print(my_dict.get('age'))
# Tentando acessar chave ausente retorna None
print(my_dict.get('address'))
# KeyError
print(my_dict['address'])

Saída

Jack 26 None Traceback (most recent call last): File "<string>", line 15, in <module> print(my_dict['address']) KeyError: 'address'

Alterando e Adicionando Elementos do Dicionário

Dicionários são mutáveis. Atribuir a chave existente atualiza seu valor; atribuir a nova chave adiciona nova entrada.

# Alterando e adicionando elementos do dicionário
my_dict = {'name': 'Jack', 'age': 26}
# atualizar valor
my_dict['age'] = 27
# Saída: {'age': 27, 'name': 'Jack'}
print(my_dict)
# adicionar item
my_dict['address'] = 'Downtown'
# Saída: {'address': 'Downtown', 'age': 27, 'name': 'Jack'}
print(my_dict)

Saída

{'name': 'Jack', 'age': 27} {'name': 'Jack', 'age': 27, 'address': 'Downtown'}

Removendo Elementos de um Dicionário

Use pop() para deletar chave específica e recuperar seu valor. popitem() remove par arbitrário, enquanto clear() limpa o dicionário inteiro. A palavra-chave del pode remover entradas individuais ou a variável inteira.

# Removendo elementos de um dicionário
# criar dicionário
squares = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# remover item específico, retorna seu valor
# Saída: 16
print(squares.pop(4))
# Saída: {1: 1, 2: 4, 3: 9, 5: 25}
print(squares)
# remover item arbitrário, retorna (chave,valor)
# Saída: (5, 25)
print(squares.popitem())
# Saída: {1: 1, 2: 4, 3: 9}
print(squares)
# remover todos itens
squares.clear()
# Saída: {}
print(squares)
# deletar o dicionário em si
del squares
# Lança erro
print(squares)

Saída

16 {1: 1, 2: 4, 3: 9, 5: 25} (5, 25) {1: 1, 2: 4, 3: 9} {} Traceback (most recent call last): File "<string>", line 30, in <module> print(squares) NameError: name 'squares' is not defined

Métodos de Dicionário Python

A tabela abaixo lista métodos comuns de dicionário e seus propósitos. Muitos são demonstrados nos exemplos a seguir.

MétodoDescrição
clear()Remove todos itens do dicionário.
copy()Retorna cópia rasa do dicionário.
fromkeys(seq[, v])Cria novo dicionário de seq com toda chave definida como v (padrão None).
get(key[,d])Retorna valor para key; se ausente, retorna d (padrão None).
items()Retorna view dos pares (chave, valor) do dicionário.
keys()Retorna view das chaves do dicionário.
pop(key[,d])Deleta key e retorna seu valor ou d; levanta KeyError se key ausente e d não fornecido.
popitem()Remove e retorna par (chave, valor) arbitrário; levanta KeyError se dicionário vazio.
setdefault(key[,d])Retorna valor para key; se ausente, insere key com valor d (padrão None) e retorna d.
update([other])Insere ou atualiza pares chave/valor de other, sobrescrevendo chaves existentes.
values()Retorna view dos valores do dicionário.

Exemplo de uso:

# Métodos de Dicionário
marks = {}.fromkeys(['Math', 'English', 'Science'], 0)
# Saída: {'English': 0, 'Math': 0, 'Science': 0}
print(marks)
for item in marks.items():
    print(item)
# Saída: ['English', 'Math', 'Science']
print(list(sorted(marks.keys())))

Saída

{'Math': 0, 'English': 0, 'Science': 0} ('Math', 0) ('English', 0) ('Science', 0) ['English', 'Math', 'Science']

Compreensão de Dicionário (Dictionary Comprehension)

Compreensão de dicionário oferece sintaxe concisa para construir dicionários a partir de iteráveis. Segue o padrão {chave: valor for elemento in iterável}.

# Compreensão de Dicionário
squares = {x: x*x for x in range(6)}
print(squares)

Saída

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Versão imperativa equivalente:

squares = {}
for x in range(6):
    squares[x] = x*x
print(squares)

Saída

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Compreensões podem incluir múltiplos loops e filtros if. Exemplo: apenas quadrados ímpares.

# Compreensão de Dicionário com condicional if
odd_squares = {x: x*x for x in range(11) if x % 2 == 1}
print(odd_squares)

Saída

{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

Para mais sobre compreensões de dicionário, veja Python Dictionary Comprehension.


Outras Operações com Dicionário

Teste de Pertinência em Dicionário

Use operador in para verificar se chave existe; ele não inspeciona valores.

# Teste de Pertinência para Chaves de Dicionário
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Saída: True
print(1 in squares)
# Saída: True
print(2 not in squares)
# teste de pertinência apenas para chave, não valor
# Saída: False
print(49 in squares)

Saída

True True False

Iterando Sobre um Dicionário

Itere sobre chaves diretamente, então acesse valores.

# Iterando sobre Dicionário
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
    print(squares[i])

Saída

1 9 25 49 81

Funções Built-in de Dicionário

Funções padrão como all(), any(), len() e sorted() são frequentemente aplicadas a dicionários.

FunçãoDescrição
all()True se toda chave avalia True (ou se dicionário vazio).
any()True se qualquer chave avalia True; False para dicionário vazio.
len()Número de pares chave/valor.
cmp()Compara dois dicionários (removido no Python 3).
sorted()Retorna lista ordenada de chaves.

Exemplos:

# Funções Built-in de Dicionário
squares = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Saída: False
print(all(squares))
# Saída: True
print(any(squares))
# Saída: 6
print(len(squares))
# Saída: [0, 1, 3, 5, 7, 9]
print(sorted(squares))

Saída

False True 6 [0, 1, 3, 5, 7, 9]

python

  1. Dominando Tipos de Dados em Python: Guia Prático
  2. Dominando Operadores em Python: Guia Completo
  3. Dominando a Declaração Pass em Python: Guia Prático
  4. Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
  5. Dominando Iteradores em Python: Como Funcionam e Como Criar os Seus
  6. Closures em Python Explicados: Como Funções Aninhadas Capturam Variáveis
  7. Dominando datetime do Python: Guia Prático de Datas, Horários e Fusos Horários
  8. Visão Geral do Python: Linguagem de Alto Nível, Legível, Interativa e Orientada a Objetos
  9. Números em Python: Entender Tipos de Dados Numéricos Imutáveis
  10. Dominando Strings em Python: Criação, Acesso e Manipulação