Dado un diccionario donde las claves son caracteres y sus valores constituyentes son números, la tarea aquí es escribir un programa en Python que pueda convertirlo en una lista repitiendo veces el valor del carácter clave.
Entrada: test_dict = {‘g’: 2, ‘f’: 3, ‘g’: 1, ‘b’: 4, ‘e’: 1, ‘s’: 4, ‘t’: 3}
Salida: [‘g’, ‘f’, ‘f’, ‘f’, ‘b’, ‘b’, ‘b’, ‘b’, ‘e’, ’s’, ‘s’, ‘s’ , ‘s’, ‘t’, ‘t’, ‘t’]
Explicación: f se agrega 3 veces en la lista.
Entrada: test_dict = {‘g’: 2, ‘f’: 3, ‘g’: 1, ‘b’: 4, ‘e’: 1}
Salida : [‘g’, ‘f’, ‘f’, ‘f’, ‘b’, ‘b’, ‘b’, ‘b’, ‘e’]
Explicación : f se agrega 3 veces en la lista.
Método 1: Usar el bucle y el operador *
En esto, los elementos se insertan usando un bucle y las ocurrencias se cuidan usando el operador *.
Programa:
Python3
# initializing dictionary test_dict = {'g': 2, 'f': 3, 'g': 1, 'b': 4, 'e': 1, 's': 4, 't': 3} # printing original dictionary print("The original dictionary is : " + str(test_dict)) res = [] for key, val in test_dict.items(): # getting values using * operator res += [key] * val # printing result print("The constructed list : " + str(res))
Producción:
El diccionario original es: {‘g’: 1, ‘f’: 3, ‘b’: 4, ‘e’: 1, ‘s’: 4, ‘t’: 3}
La lista construida: [‘g’, ‘f’, ‘f’, ‘f’, ‘b’, ‘b’, ‘b’, ‘b’, ‘e’, ’s’, ‘s’, ‘ s’, ‘s’, ‘t’, ‘t’, ‘t’]
Método 2: Usar la comprensión de listas
Esto utiliza un enfoque de bucle anidado que utiliza la comprensión de listas como un trazador de líneas para resolver este problema. Iterar los valores tanto como sea necesario.
Programa:
Python3
# initializing dictionary test_dict = {'g': 2, 'f': 3, 'g': 1, 'b': 4, 'e': 1, 's': 4, 't': 3} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # nested list comprehension to solve problem res = [key for key, val in test_dict.items() for _ in range(val)] # printing result print("The constructed list : " + str(res))
Producción:
El diccionario original es: {‘g’: 1, ‘f’: 3, ‘b’: 4, ‘e’: 1, ‘s’: 4, ‘t’: 3}
La lista construida: [‘g’, ‘f’, ‘f’, ‘f’, ‘b’, ‘b’, ‘b’, ‘b’, ‘e’, ’s’, ‘s’, ‘ s’, ‘s’, ‘t’, ‘t’, ‘t’]
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA