Python | Producto cartesiano de elementos de cuerda

A veces, mientras trabajamos con strings de Python, podemos tener el problema de que tenemos datos en una string que está separada por comas o cualquier delimitación. Es posible que deseemos realizar un producto cartesiano con otras strings similares para obtener todos los pares de datos posibles. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Uso de la comprensión de listas + split()
Esta tarea se puede realizar mediante la comprensión de listas. En esto, realizamos la tarea de extraer elementos individuales usando split(). La tarea de comprensión de listas es formar parejas.

# Python3 code to demonstrate working of 
# Cartesian product of string elements
# Using split() + list comprehension
  
# initializing strings
test_str1 = "gfg, is, best"
test_str2 = "for, all, geeks"
  
# printing original strings
print("The original string 1 is : " + test_str1)
print("The original string 2 is : " + test_str2)
  
# Cartesian product of string elements
# Using split() + list comprehension
res = [sub1 + sub2 for sub1 in test_str1.split(", ") for sub2 in test_str2.split(", ")]
                      
# printing result 
print("Cartesian product list : " + str(res)) 
Producción :

The original string 1 is : gfg, is, best
The original string 2 is : for, all, geeks
Cartesian product list : ['gfgfor', 'gfgall', 'gfggeeks', 'isfor', 'isall', 'isgeeks', 'bestfor', 'bestall', 'bestgeeks']

Método n.° 2: Uso de la comprensión de listas +product()
La combinación de las funciones anteriores se puede usar para realizar esta tarea. En esto, empleamos product() en lugar de comprensión anidada para realizar la tarea de emparejamiento.

# Python3 code to demonstrate working of 
# Cartesian product of string elements
# Using product() + list comprehension
from itertools import product
  
# initializing strings
test_str1 = "gfg, is, best"
test_str2 = "for, all, geeks"
  
# printing original strings
print("The original string 1 is : " + test_str1)
print("The original string 2 is : " + test_str2)
  
# Cartesian product of string elements
# Using product() + list comprehension
res = [sub1 + sub2 for sub1, sub2 in product(test_str1.split(", "), test_str2.split(", "))]
                      
# printing result 
print("Cartesian product list : " + str(res)) 
Producción :

The original string 1 is : gfg, is, best
The original string 2 is : for, all, geeks
Cartesian product list : ['gfgfor', 'gfgall', 'gfggeeks', 'isfor', 'isall', 'isgeeks', 'bestfor', 'bestall', 'bestgeeks']

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 *