Converter Duas Listas em Dicionário em Python
-
Utilize
zip()
edict()
para converter duas listas em dicionário em Python - Utilizar a compreensão do dicionário para converter lista em dicionário em Python
-
Utiliza a função
for
Loop para converter lista em dicionário em Python
Este tutorial irá introduzir como converter duas listas num dicionário em Python onde uma lista contém as chaves do dicionário, e a outra contém os valores.
Utilize zip()
e dict()
para converter duas listas em dicionário em Python
Python tem uma função integrada chamada zip()
, que agrega tipos de dados iteráveis num tuple e os devolve à pessoa que faz a chamada. A função dict()
cria um dicionário a partir de uma determinada colecção.
key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]
dict_from_list = dict(zip(key_list, value_list))
print(dict_from_list)
Nesta solução, a conversão de listas em dicionários é possível utilizando apenas uma linha e duas funções.
Resultado:
{'name': 'Johnny', 'age': '27', 'address': 'New York'}
Utilizar a compreensão do dicionário para converter lista em dicionário em Python
A compreensão de dicionários é uma forma de encurtar o tempo de inicialização da criação de dicionários em Python. A compreensão é uma substituição de loops, que requer múltiplas linhas e variáveis. A compreensão faz o trabalho de inicialização numa única linha.
Nesta solução, a função zip()
continuará a fornecer valores para a compreensão do dicionário. A compreensão devolverá um par de valores chave de cada elemento consecutivo dentro do valor de retorno da função zip()
como um dicionário.
key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]
dict_from_list = {k: v for k, v in zip(key_list, value_list)}
print(dict_from_list)
Outra forma de converter listas para um dicionário é utilizando os índices das listas e utilizando a função range()
para iterar sobre ambas as listas e utilizar a compreensão para construir um dicionário a partir delas.
Assume que a extensão da lista de chaves e da lista de valores é a mesma. Neste exemplo, o comprimento da lista de chaves será a base para o intervalo.
key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]
dict_from_list = {key_list[i]: value_list[i] for i in range(len(key_list))}
print(dict_from_list)
Ambas as soluções de compreensão fornecerão a mesma saída que o exemplo anterior.
A única diferença entre estas duas soluções é que se utiliza a função zip()
para converter a lista em tuple. A outra utiliza a função range()
para iterar ambas as listas utilizando o índice actual para formar um dicionário.
Resultado:
{'name': 'Johnny', 'age': '27', 'address': 'New York'}
Utiliza a função for
Loop para converter lista em dicionário em Python
A forma mais simples de conseguir uma lista para conversão em dicionário é através de um laço. Embora este método seja o mais ineficiente e moroso, é um bom começo, especialmente se for um principiante e quiser compreender mais sobre a sintaxe básica da programação.
Antes de fazer um looping, inicialize um dicionário vazio. Depois, proceder à conversão, que exigirá um loop aninhado; o loop externo irá iterar a lista de chaves, enquanto o loop interno irá iterar a lista de valores.
key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]
dict_from_list = {}
for key in key_list:
for value in value_list:
dict_from_list[key] = value
value_list.remove(value)
break
print(dict_from_list)
Cada vez que se forma um par de chaves de valor, este remove o elemento de valor da lista, para que à chave seguinte seja atribuído o valor seguinte. Após a remoção, quebra o laço interno para avançar para a chave seguinte.
Outra solução que utiliza um laço é utilizar range()
a utilizar o índice para obter os pares de chaves e de valores, tal como foi feito no exemplo com a compreensão do dicionário.
key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]
dict_from_list = {}
for i in range(len(key_list)):
dict_from_list[key_list[i]] = value_list[i]
print(dict_from_list)
Ambas as soluções produzirão o mesmo Resultado:
{'name': 'Johnny', 'age': '27', 'address': 'New York'}
Em resumo, a forma mais eficiente de converter duas listas em dicionário é utilizar a função integrada zip()
para converter as duas listas em tuple e depois converter o tuple em dicionário utilizando dict()
.
A utilização da compreensão do dicionário também pode converter listas em dicionário utilizando zip()
para converter as listas em tuple, ou range()
e utilizar o índice das listas’ para iterar e inicializar um dicionário.
Estas duas soluções são melhores do que a solução ingénua, que utiliza loops simples para converter as listas em dicionário.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInArtigo relacionado - Python List
- Converter um dicionário em uma lista em Python
- Remova todas as ocorrências de um elemento de uma lista em Python
- Remover duplicatas da lista em Python
- Obter a Média de uma Lista em Python
- Qual é a diferença entre os métodos de lista anexar e estender
- Como Converter uma Lista para String em Python