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 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, hemos tomado una lista de tuplas y la hemos convertido en un diccionario. Hemos tomado el primer elemento de cada tupla como clave y el segundo elemento como valor para el diccionario.
Entrada: lista_uno = [(‘a’, ‘A’), (‘b’, ‘B’), (‘c’, ‘C’)]
Salida: {‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’}
En el siguiente ejemplo, hemos tomado una lista de elementos y la hemos convertido en un diccionario con elementos alternativos como clave y valor. Daremos null a la clave si no queda ningún elemento para ella como clave (si la lista tiene un número impar de elementos).
Entrada: lista_uno = [‘a’, ‘A’, ‘b’, ‘B’, ‘c’, ‘C’, ‘d’]
Salida:{‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’, ‘d’: Ninguno}
Hemos visto el objetivo del tutorial. Y discutiremos los dos ejemplos de forma diferente. Empecemos por el primer ejemplo.
Lista de tuplas – Diccionario
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 en los ejemplos anteriores (asegúrese de que cada tupla de la lista tiene exactamente dos elementos).
- Pase la lista de tuplas al método dict y éste almacenará el resultado en una nueva variable.
- Ya está, hemos convertido una lista de tuplas en un diccionario con una sola línea de código.
# Lista de tuplas
lista_de_tuplas = [('a', 'A'), ('b', 'B'), ('c', 'C')]
# convertir a diccionario
lista_de_tuplas_dict = dict(lista_de_tuplas)
# imprimir el dict resultante
print(lista_de_tuplas_dict)
Puede probar la salida del programa anterior ejecutándolo. Obtendrá el resultado como vemos en los ejemplos.
Lista – Diccionario
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 siguientes pasos para escribir el código del segundo ejemplo.
Hemos rellenado el valor por defecto como Ninguno para el elemento que no tendrá ningún valor (una lista que contenga un número impar de elementos). Para ello, necesitamos utilizar un método llamado zip_longest del módulo itertools.
- Importe el módulo itertools e inicialice una lista con un número impar de elementos dada en los ejemplos.
- Convierta la lista en un iterable para evitar la repetición de pares clave y valor en el método zip_longest .
- Ahora, pase el iterable al método zip_longest y fillvalue como None. Devolverá un objeto zip.
- Tenemos que pasar iterable dos veces ya que toma clave y valor de los dos iterables. En nuestro caso, tanto las claves como los valores están en el mismo iterable. Por lo tanto, tenemos que pasarlo dos veces antes de fillvalue.
- Convierta el objeto en el diccionario de Python utilizando el método dict .
- Imprima el resultado.
# importar el módulo
importar itertools
# lista plana con número impar de elementos
lista_plana = ['a', 'A', 'b', 'B', 'c', 'C', 'd']
# convertirla en iterable para evitar repeticiones
lista_plana_iter = iter(lista_plana)
# convertir la lista_plana en dict
plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None)
# convierta el objeto zip_longest a dict utilizando `dict`
lista_plana_dict = dict(objeto_lista_plana_dict)
# imprimirlo
print(lista_plana_dict)
Puede darle al fillvalue lo que quiera. Pruebe diferentes cosas con él. Y ejecute el código para ver si obtenemos la salida exacta que se menciona en el ejemplo o no.
Conclusión
Espero que haya disfrutado convirtiendo la lista en un diccionario. Nos vemos en el próximo tutorial.
A continuación, aprenda cómo aplanar una lista en Python.
Feliz Codificación 🙂