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