Convertir dos listas en diccionario en Python
-
Usar
zip()
ydict()
para convertir dos listas en un diccionario en Python - Utilizar la comprensión de diccionarios para convertir listas en diccionarios en Python
-
Utilizar el bucle
for
para convertir una lista en un diccionario en Python
Este tutorial presentará cómo convertir dos listas en un diccionario en Python en el que una lista contiene las claves del diccionario, y la otra contiene los valores.
Usar zip()
y dict()
para convertir dos listas en un diccionario en Python
Python tiene una función incorporada llamada zip()
, que agrega tipos de datos iterables en una tupla y la devuelve a quien la llama. La función dict()
crea un diccionario a partir de la colección dada.
key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]
dict_from_list = dict(zip(key_list, value_list))
print(dict_from_list)
En esta solución, la conversión de listas en diccionarios es posible utilizando una sola línea y dos funciones.
Producción :
{'name': 'Johnny', 'age': '27', 'address': 'New York'}
Utilizar la comprensión de diccionarios para convertir listas en diccionarios en Python
La comprensión de diccionarios es una forma de acortar el tiempo de inicialización de la creación de diccionarios en Python. La comprensión es un reemplazo de los bucles for, que requieren múltiples líneas y variables. La comprensión hace el trabajo de inicialización en una sola línea.
En esta solución, la función zip()
seguirá proporcionando valores a la comprensión del diccionario. La comprensión devolverá un par clave-valor de cada elemento consecutivo dentro del valor de retorno de la función zip()
como un diccionario.
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)
Otra forma de convertir las listas en un diccionario es utilizar los índices de las listas y usar la función range()
para iterar sobre ambas listas y usar la comprensión para construir un diccionario a partir de ellas.
Se asume que la longitud de la lista de claves y la lista de valores es la misma. En este ejemplo, la longitud de la lista de claves será la base del rango.
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 soluciones de comprensión proporcionarán la misma salida que el ejemplo anterior.
La única diferencia entre estas dos soluciones es que una utiliza la función zip()
para convertir la lista en una tupla. La otra utiliza la función range()
para iterar ambas listas utilizando el índice actual para formar un diccionario.
Producción :
{'name': 'Johnny', 'age': '27', 'address': 'New York'}
Utilizar el bucle for
para convertir una lista en un diccionario en Python
La forma más directa de lograr la conversión de lista a diccionario es mediante un bucle. Aunque este método es el más ineficiente y largo, es un buen comienzo, especialmente si eres un principiante y quieres comprender mejor la sintaxis básica de programación.
Antes de hacer el bucle, inicialice un diccionario vacío. Después, proceda a la conversión, que requerirá un bucle anidado; el bucle exterior iterará la lista de claves, mientras que el bucle interior itera la 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 forme un par clave-valor, elimina el elemento valor de la lista para que a la siguiente clave se le asigne el siguiente valor. Tras la eliminación, rompe el bucle interno para pasar a la siguiente clave.
Otra solución utilizando un bucle es utilizar range()
para utilizar el índice para obtener los pares clave y valor, al igual que lo que se hizo en el ejemplo con la comprensión del diccionario.
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 soluciones producirán la misma salida:
{"name": "Johnny", "age": "27", "address": "New York"}
En resumen, la forma más eficiente de convertir dos listas en un diccionario es utilizar la función incorporada zip()
para convertir las dos listas en una tupla y luego convertir la tupla en un diccionario utilizando dict()
.
Usando la comprensión del diccionario también se pueden convertir las listas en un diccionario usando zip()
para convertir las listas en tuplas, o range()
y usar el índice de las listas para iterar e inicializar un diccionario.
Estas dos soluciones son mejores que la solución ingenua, que utiliza bucles simples para convertir las listas en un diccionario.
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.
LinkedInArtículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python
Artículo relacionado - Python Dictionary
- Cómo comprobar si existe una clave en un diccionario en Python
- Convertir un diccionario en una lista en Python
- Cómo obtener todos los archivos de un directorio
- Cómo encontrar el valor máximo en el Diccionario Python
- Cómo ordenar un diccionario Python por valor
- Cómo fusionar dos diccionarios en Python 2 y 3