Python: repetición consecutiva de caracteres

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)) 
Producción :

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)) 
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *