Python: combinaciones de strings de repetición de caracteres

Dada una lista de strings y una lista de números, la tarea es escribir un programa Python para generar todas las strings posibles repitiendo cada carácter de cada string por cada número en la lista.

Entrada: test_list = [“gfg”, “is”, “best”], rep_list = [3, 5, 2]

Salida: [‘gggfffggg’, ‘iiisss’, ‘bbbeeesssttt’, ‘gggggfffffggggg’, ‘iiiiisssss’, ‘bbbbbeeeeesssssttttt’, ‘ggffgg’, ‘iiss’, ‘bbeesstt’]

Explicación: cada elemento de ‘gfg’ se repite 3, 5 y 2 veces para generar strings diferentes. 

Entrada: test_list = [“gfg”, “is”, “best”], rep_list = [3, 1, 2]

Salida: [‘gggfffggg’, ‘iiisss’, ‘bbbeeesssttt’, ‘gfg’, ‘is’, ‘best’, ‘ggffgg’, ‘iiss’, ‘bbeesstt’]

Explicación: cada elemento de ‘gfg’ se repite 3, 1 y 2 veces para generar strings diferentes. 

Método n.º 1: Usar join() + bucle + comprensión de lista + operador *

En este, la tarea de construir cada string se realiza mediante join(). El operador * realiza la tarea de crear múltiples ocurrencias de caracteres. El ciclo anidado se usa para combinar cada número con cada string.

Python3

# Python3 code to demonstrate working of
# Character repetition string combinations
# Using join() + nested loop + list comprehension + * operator
 
# initializing list
test_list = ["gfg", "is", "best"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# repeat list
rep_list = [3, 5, 2]
 
# * operator performs repetitions
# list comprehension encapsulates logic
res = [''.join(sub * ele1 for sub in ele2)
       for ele1 in rep_list for ele2 in test_list]
 
# printing result
print("All repetition combinations strings : " + str(res))

Producción:

La lista original es: [‘gfg’, ‘is’, ‘best’]

Todas las strings de combinaciones de repetición: [‘gggfffggg’, ‘iiisss’, ‘bbbeeesssttt’, ‘gggggfffffgggggg’, ‘iiiiisssss’, ‘bbbbbeeeeesssssttttt’, ‘ggffgg’, ‘iiss’, ‘bbeesstt’]

Método n.º 2: Usar producto() + unir() + bucle

El bucle anidado para generar pares se evita en este método mediante el uso del método product(). Resto toda la funcionalidad sigue siendo igual que el método anterior.

Python3

# Python3 code to demonstrate working of
# Character repetition string combinations
# Using product() + join() + loop
from itertools import product
 
# initializing list
test_list = ["gfg", "is", "best"]
 
# printing original list
print("The original list is : " + str(test_list))
 
# repeat list
rep_list = [3, 5, 2]
 
# * operator performs repetitions
# list comprehension encapsulates logic
res = [''.join(sub * ele1 for sub in ele2)
       for ele2, ele1 in product(test_list, rep_list)]
 
# printing result
print("All repetition combinations strings : " + str(res))

Producción:

La lista original es: [‘gfg’, ‘is’, ‘best’]

Todas las strings de combinaciones de repetición: [‘gggfffggg’, ‘gggggfffffggggg’, ‘ggffgg’, ‘iiisss’, ‘iiiiisssss’, ‘iiss’, ‘bbbeeesssttt’, ‘bbbbbeeeeesssssttttt’, ‘bbeesstt’]

La complejidad de tiempo y espacio para todos los métodos es la misma:

Complejidad temporal: O(n 2 )

Espacio Auxiliar: O(n)

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 *