A veces, mientras trabajamos con listas de caracteres, podemos tener un problema en el que necesitamos realizar repeticiones consecutivas de caracteres. Esto puede tener aplicación en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.
Método #1: Uso de la comprensión de listas
Esta es una de las formas en que se puede realizar esta tarea. En esto, realizamos una forma de fuerza bruta para realizar, pero en una sola línea, multiplicando cada carácter por magnitud.
# Python3 code to demonstrate working of # Consecutive Repetition of Characters # Using list comprehension # initializing list test_list = ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't'] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 3 # Consecutive Repetition of Characters # Using list comprehension res = [sub for ele in test_list for sub in [ele] * K] # printing result print("The list after Consecutive Repetition is : " + str(res))
La lista original es: [‘g’, ‘f’, ‘g’, ‘i’, ‘s’, ‘b’, ‘e’, ’s’, ‘t’]
La lista después de la repetición consecutiva es: [ ‘g’, ‘g’, ‘g’, ‘f’, ‘f’, ‘f’, ‘g’, ‘g’, ‘g’, ‘i’, ‘i’, ‘i’, ‘s ‘, ‘s’, ‘s’, ‘b’, ‘b’, ‘b’, ‘e’, ’e’, ’e’, ’s’, ‘s’, ‘s’, ‘t’, ‘t’, ‘t’]
Método #2: Usarchain() + repeat()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de repetir usando repeat() y la construcción del resultado usando chain().
# Python3 code to demonstrate working of # Consecutive Repetition of Characters # Using chain() + repeat() from itertools import chain, repeat # initializing list test_list = ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't'] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 3 # Consecutive Repetition of Characters # Using chain() + repeat() res = list(chain.from_iterable(repeat(chr, K) for chr in test_list)) # printing result print("The list after Consecutive Repetition is : " + str(res))
La lista original es: [‘g’, ‘f’, ‘g’, ‘i’, ‘s’, ‘b’, ‘e’, ’s’, ‘t’]
La lista después de la repetición consecutiva es: [ ‘g’, ‘g’, ‘g’, ‘f’, ‘f’, ‘f’, ‘g’, ‘g’, ‘g’, ‘i’, ‘i’, ‘i’, ‘s ‘, ‘s’, ‘s’, ‘b’, ‘b’, ‘b’, ‘e’, ’e’, ’e’, ’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