Convertir una lista en un diccionario en Python no es tan difícil.
Veamos diferentes formas de convertir una lista en un diccionario.
Intro
Antes de pasar al tutorial, veamos un ejemplo de conversión de una lista en un diccionario. Tendremos una lista de tuplas (cada tupla consta de dos elementos) o simplemente una lista de elementos. Tomaremos ambas entradas y las convertiremos en diccionarios.
Ejemplos:
En el siguiente ejemplo, tomamos una lista de tuplas y la convertimos en un diccionario. Hemos tomado el primer elemento de cada tupla como clave y el segundo elemento como valor para el diccionario.
Entrada: list_one = [('a', 'A'), ('b', 'B'), ('c', 'C')]
Salida: {'a': 'A', 'b': 'B', 'c': 'C'}
En el siguiente ejemplo, tomamos una lista de elementos y la convertimos en un diccionario con elementos alternativos como clave y valor. Daremos nulo a la clave si no le queda ningún elemento como clave (si la lista tiene un número impar de elementos).
Entrada: list_one = ['a', 'A', 'b', 'B', 'c', 'C', 'd']
Salida:{'a': 'A', 'b': 'B', 'c': 'C', 'd': Ninguno}
Hemos visto el objetivo del tutorial. Y discutiremos ambos ejemplos de diferentes maneras. Comencemos con el primer ejemplo.
List of Tuples – Dictionary
Veamos cómo convertir una lista de tuplas en un diccionario. Puede intentar escribir el código con la ayuda de los siguientes pasos.
- Inicialice la lista de tuplas con datos ficticios como se indica en los ejemplos anteriores (asegúrese de que cada tupla de la lista tenga exactamente dos elementos).
- Pasar la lista de tuplas a dict método y almacena el resultado en una nueva variable.
- Eso es todo, hemos convertido una lista de tuplas en un diccionario con una sola línea de código.
# list of tuples
list_of_tuples = [('a', 'A'), ('b', 'B'), ('c', 'C')]
# converting to dictionary
list_of_tuples_dict = dict(list_of_tuples)
# printing the result dict
print(list_of_tuples_dict)
Puede probar la salida del programa anterior ejecutándolo. Obtendrá el resultado como vemos en los ejemplos.
List – Dictionary
Hemos visto cómo convertir una lista de tuplas en un diccionario y es algo sencillo en Python. En esta sección, veremos cómo convertir una lista simple en un diccionario.
Vea el segundo ejemplo de la primera sección del tutorial para obtener más claridad.
Siga los pasos a continuación para escribir el código para el segundo ejemplo.
Hemos llenado el valor predeterminado como Ningúna para el elemento que no tendrá ningún valor (una lista que contiene un número impar de elementos). Para eso, necesitamos usar un método llamado zip_más largo desde el modulo itertools.
- Importar el módulo itertools e inicializar una lista con un número impar de elementos dados en los ejemplos.
- Convierta la lista en iterable para evitar la repetición de clave y propuesta de pares en el zip_más largo método.
- Ahora, pase el iterable al método zip_más largo y valor de relleno as Ningúna. Devolverá un objeto zip.
- Tenemos que pasar iterable dos veces ya que toma la clave y el valor de los dos iterables. En nuestro caso, tanto las claves como los valores están en el mismo iterable. Entonces, necesitamos pasarlo dos veces antes de fillvalue.
- Convierta el objeto en el diccionario de Python usando dict método.
- Imprime el resultado.
# importing the module
import itertools
# plain list with odd number of elements
plain_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd']
# converting it to iterable to avoid repetition
plain_list_iter = iter(plain_list)
# converting the plain_list to dict
plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None)
# convert the zip_longest object to dict using `dict`
plain_list_dict = dict(plain_list_dict_object)
# print it
print(plain_list_dict)
Puedes dar el valor de relleno lo que quieras. Prueba diferentes cosas con él. Y ejecute el código para ver si estamos obteniendo el resultado exacto como se menciona en el ejemplo o no.
Conclusion
Espero que hayas disfrutado convirtiendo la lista en un diccionario. Nos vemos en el próximo tutorial.
A continuación, aprenda a Aplanar lista en Python.
Codificación feliz 🙂