Python: subconjunto de filas de array

A veces, al trabajar con Python Matrix, uno puede tener un problema en el que necesita extraer todas las filas que son un posible subconjunto de cualquier fila de otra Matrix. Este tipo de problema puede tener aplicación en dominios de datos, ya que una array es un tipo de datos clave en esos dominios. Analicemos ciertas formas en que se puede resolver este problema.

Entrada : test_list = [[4, 5, 7], [2, 3, 4], [9, 8, 6]], check_matr = [[2, 3], [1, 2], [9, 0] ]
Salida : [[2, 3]]

Entrada : test_list = [[4, 1, 2], [2, 3, 4], [9, 8, 0]], check_matr = [[2, 3], [1, 2], [9, 0] ]
Salida : [[2, 3], [1, 2], [9, 0]]

Método n.º 1: Uso any() + all()de la comprensión de listas +
La combinación de las funciones anteriores ofrece una manera de resolver este problema. En esto, verificamos la ocurrencia de todos los elementos de la fila usando all() y any() se usa para hacer coincidir cualquier fila de Matrix. La comprensión de listas se utiliza para unir la lógica.

# Python3 code to demonstrate working of 
# Matrix Row subset
# Using any() + all() + list comprehension
  
# initializing lists
test_list = [[4, 5, 7], [2, 3, 4], [9, 8, 0]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing check Matrix
check_matr = [[2, 3], [1, 2], [9, 0]]
  
# Matrix Row subset
# Using any() + all() + list comprehension
res = [ele for ele in check_matr if any(all(a in sub for a in ele)
                                           for sub in test_list)]
  
# printing result 
print("Matrix row subsets : " + str(res)) 
Producción :

The original list is : [[4, 5, 7], [2, 3, 4], [9, 8, 0]]
Matrix row subsets : [[2, 3], [9, 0]]

Método #2: Uso product() + set()de la comprensión de lista +
La combinación de las funciones anteriores se puede utilizar para esta tarea. En esto, realizamos la tarea del bucle anidado usando product() y la conversión set() es para verificar el subconjunto de un contenedor sobre otro. La comprensión de listas se utiliza para vincular todos juntos.

# Python3 code to demonstrate working of 
# Matrix Row subset
# Using product() + set() + list comprehension
import itertools
  
# initializing lists
test_list = [[4, 5, 7], [2, 3, 4], [9, 8, 0]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing check Matrix
check_matr = [[2, 3], [1, 2], [9, 0]]
  
# Matrix Row subset
# Using product() + set() + list comprehension
res = [a for a, b in itertools.product(check_matr, test_list)
                                         if set(a) <= set(b)]
  
# printing result 
print("Matrix row subsets : " + str(res)) 
Producción :

The original list is : [[4, 5, 7], [2, 3, 4], [9, 8, 0]]
Matrix row subsets : [[2, 3], [9, 0]]

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 *