Compreensão de dicionário em Python
Uma lista é uma coleção ordenada de vários elementos sob um nome comum. É simples criar e gerenciar listas em Python. Para facilitar, temos o método de compreensão de lista disponível em Python. Este método é muito mais conciso, elegante e geralmente é apenas uma única linha de código. Geralmente envolve o uso do loop for
entre colchetes.
O código a seguir demonstra o uso desse método para criar uma lista simples de inteiros.
lst = [i for i in range(1, 10)]
print(lst)
Resultado:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Por outro lado, um dicionário é usado para armazenar pares de valores-chave. Há suporte no Python 2.7 e superior para compreensão de dicionário também. É usado de forma semelhante para criar dicionários em uma única linha de código.
Por exemplo,
d = {i: i * 5 for i in range(1, 5)}
print(d)
Resultado:
{1: 5, 2: 10, 3: 15, 4: 20}
No código acima, atribuímos números inteiros de 1 a 5 como as chaves do dicionário e atribuímos o produto da chave e 5 como seu valor.
Todos nós sabemos que podemos criar uma lista de chaves e valores de um dicionário. Usando o método de compreensão de dicionário, podemos criar facilmente um dicionário usando elementos de uma lista. Isso é mostrado no exemplo abaixo.
keys = [1, 2, 3, 4, 5]
vals = ["Mark", "Jack", "Jake", "Sam", "Ash"]
d = {i: j for i, j in zip(keys, vals)}
print(d)
Resultado:
{1: 'Mark', 2: 'Jack', 3: 'Jake', 4: 'Sam', 5: 'Ash'}
A função zip()
no exemplo acima é usada para retornar um objeto do tipo zip após combinar as duas listas.
É importante notar que também existem outras maneiras de criar dicionários com mais rapidez. Por exemplo, podemos usar a função fromkeys()
. Esta função nos permite criar um dicionário fornecendo as chaves de uma lista. A desvantagem é que ele especifica um mesmo valor para todas as chaves.
Por exemplo,
keys = [1, 2, 3, 4, 5]
d = dict.fromkeys(keys, "True")
print(d)
Resultado:
{1: 'True', 2: 'True', 3: 'True', 4: 'True', 5: 'True'}
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn