Python: combinación de caracteres de todas las posiciones

Dado un carácter K, agregue a cada índice y todas las combinaciones de longitudes.

Entrada : test_str = ‘gfg’, K = ‘$’
Salida : [‘gfg’, ‘gf$’, ‘g$g’, ‘g$$’, ‘$fg’, ‘$f$’, ‘$$g’, ‘$$$’]
Explicación : todos los pares posibles con ocurrencias de reemplazo.

Entrada : test_str = ‘gfg’, K = ‘*’
Salida : [‘gfg’, ‘gf*’, ‘g*g’, ‘g**’, ‘*fg’, ‘*f*’, ‘* *g’, ‘***’]
Explicación : todos los pares posibles con ocurrencias de reemplazo.

Método #1: Usar loop + zip() + join() + product()

En esto, la tarea de formar una combinación se realiza usando product(), loop se usa para la iteración de elementos, join() se usa para obtener el resultado deseado y zip() se usa para combinar cada producto extraído con la string original.

Python3

# Python3 code to demonstrate working of 
# All Position Character Combination
# Using loop + zip() + join() + product()
import itertools
  
# initializing strings
test_str = 'gfg'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing K 
K = "$"
  
res = [] 
  
# True and false represent Character from String and K respectively.
for sub in itertools.product((True, False), repeat = len(test_str)):
    res.append("".join(chr if ele else K for chr, ele in zip(test_str, sub)))
  
# printing result 
print("The required Combinations : " + str(res)) 
Producción:

The original string is : gfg
The required Combinations : ['gfg', 'gf$', 'g$g', 'g$$', '$fg', '$f$', '$$g', '$$$']

Método #2: Usar la comprensión de listas

Esto es similar al método anterior, la única diferencia es que es una forma abreviada de toda la funcionalidad en una sola línea.

Python3

# Python3 code to demonstrate working of 
# All Position Character Combination
# Using list comprehension
import itertools
  
# initializing strings
test_str = 'abc'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing K 
K = "$"
  
# one liner to perform this task 
res = ["".join(chr if ele else K for chr, ele in zip(test_str, sub)) \
     for sub in itertools.product((True, False), repeat = len(test_str))]
  
# printing result 
print("The required Combinations : " + str(res)) 
Producción:

The original string is : abc
The required Combinations : ['abc', 'ab$', 'a$c', 'a$$', '$bc', '$b$', '$$c', '$$$']

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 *