A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos realizar la construcción de una string de manera que tengamos una lista de tuplas que tienen carácter y su frecuencia correspondiente y necesitamos construir una nueva string a partir de eso. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Usar bucle
Este es un método de fuerza bruta en el que se puede realizar esta tarea. En esto, iteramos la lista y realizamos la concatenación de strings usando el operador * y seguimos construyendo la string de esta manera.
# Python3 code to demonstrate working of # String construction from character frequency # using loop # initialize list test_list = [('g', 4), ('f', 3), ('g', 2)] # printing original list print("The original list : " + str(test_list)) # String construction from character frequency # using loop res = '' for char, freq in test_list: res = res + char * freq # printing result print("The constructed string is : " + str(res))
The original list : [('g', 4), ('f', 3), ('g', 2)] The constructed string is : ggggfffgg
Método n.º 2: Uso join()
de la comprensión de listas +
La combinación de las funcionalidades anteriores se puede utilizar para realizar esta tarea. En esto, realizamos la tarea de extracción usando la comprensión de listas y creando strings usando join().
# Python3 code to demonstrate working of # String construction from character frequency # using join() + list comprehension # initialize list test_list = [('g', 4), ('f', 3), ('g', 2)] # printing original list print("The original list : " + str(test_list)) # String construction from character frequency # using join() + list comprehension res = ''.join(char * freq for char, freq in test_list) # printing result print("The constructed string is : " + str(res))
The original list : [('g', 4), ('f', 3), ('g', 2)] The constructed string is : ggggfffgg
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