Python: combinaciones de longitud K de caracteres dados

Dada una string, genere combinaciones de longitud K en una sola línea.

Entrada : test_str = ‘gfg’, K = 3 
Salida : [‘ggg’, ‘ggf’, ‘ggg’, ‘gfg’, ‘gff’, ‘gfg’, ‘ggg’, ‘ggf’, ‘ggg’, ‘fgg’, ‘fgf’, ‘fgg’, ‘ffg’, ‘fff’, ‘ffg’, ‘fgg’, ‘fgf’, ‘fgg’, ‘ggg’, ‘ggf’, ‘ggg’, ‘gfg ‘, ‘gff’, ‘gfg’, ‘ggg’, ‘ggf’, ‘ggg’] 
Explicación : Todas las combinaciones de longitud K extraídas.

Entrada : test_str = ‘G4G’, K = 2 
Salida : [‘GG’, ‘G4’, ‘GG’, ‘4G’, ’44’, ‘4G’, ‘GG’, ‘G4’, ‘GG’] 
Explicación : se extrajeron todas las combinaciones de longitud K. 
 

Método #1: Usando itertools.product() + join() + map()

La tarea puede ser realizada por product() usando el parámetro de repetición, pero devuelve el resultado en una lista de tuplas de caracteres individuales. Todos estos se pueden unir usando join() y map().

Python3

# Python3 code to demonstrate working of 
# K length Combinations from given characters shorthand
# Using itertools.product() + join() + map()
from itertools import product
  
# initializing string
test_str = 'gf4g'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing K 
K = 2
  
# map and join() used to change return data type
res = list(map(''.join, product(test_str, repeat = K)))
      
# printing result 
print("The generated Combinations : " + str(res)) 

Producción:

La string original es: gf4g
Las combinaciones generadas: [‘gg’, ‘gf’, ‘g4’, ‘gg’, ‘fg’, ‘ff’, ‘f4’, ‘fg’, ‘4g’, ‘4f’ , ’44’, ‘4g’, ‘gg’, ‘gf’, ‘g4’, ‘gg’]

Método #2: Usar itertools.product() + comprensión de lista

En este se utiliza la comprensión de listas para la tarea de unir elementos.

Python3

# Python3 code to demonstrate working of 
# K length Combinations from given characters shorthand
# Using itertools.product() + join() + map()
from itertools import product
  
# initializing string
test_str = 'gfg'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing K 
K = 2
  
# list comprehension + join() used to change return data type
res = [''.join(ele) for ele in product(test_str, repeat = K)]
      
# printing result 
print("The generated Combinations : " + str(res))

Producción:

La string original es: gfg
Las combinaciones generadas: [‘gg’, ‘gf’, ‘gg’, ‘fg’, ‘ff’, ‘fg’, ‘gg’, ‘gf’, ‘gg’]

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 *