Sobes.tech
Junior

O que são compreensões de dicionários em Python?

sobes.tech IA

Resposta da IA

O gerador de dicionários (compreensão de dicionários) é uma sintaxe compacta para criar dicionários baseada num objeto iterável. Permite gerar pares "chave: valor" usando expressões e filtragem opcional.

Sintaxe:

# sintaxe básica
dict = {expressão_chave: expressão_valor for elemento in iterable}

# com condição
dict = {expressão_chave: expressão_valor for elemento in iterable if condição}

Exemplos:

Criar um dicionário de quadrados de números de 0 a 4:

# dicionário onde a chave é o número e o valor o seu quadrado
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Criar um dicionário apenas para números pares:

# dicionário de quadrados apenas de números pares
even_squares = {x: x**2 for x in range(10) if x % 2 == 0}
# even_squares = {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Inverter chaves e valores:

original_dict = {'a': 1, 'b': 2, 'c': 3}
# dicionário com chaves e valores invertidos
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}

Vantagens:

  • Concisão: Mais compacto que os ciclos for equivalentes.
  • Legibilidade: Muitas vezes código mais claro para transformações simples.
  • Eficiência: Pode ser um pouco mais rápido que ciclos for em alguns casos.

Desvantagens:

  • Legibilidade para casos complexos: Para lógica muito complexa, pode tornar-se menos legível.
  • Ausência de efeitos colaterais: Não destinado a realizar ações que não estejam relacionadas com a criação do dicionário (por exemplo, imprimir algo).