Python: extrae superconjuntos de tuplas de la lista

A veces, mientras trabajamos con tuplas de Python, podemos tener un problema en el que necesitamos extraer todas las tuplas, que tienen todos los elementos en la tupla de destino. Este problema puede tener aplicación en dominios como el desarrollo web. Vamos a discutir cierta forma en que este problema puede ser resuelto.

Entrada :
test_list = [(5, 6, 6), (4, 2, 7), (9, 6, 5, 6)]
test_tuple = (6, 6)
Salida : [(5, 6, 6), ( 9, 6, 5, 6)]

Entrada :
test_list = [(5, 6, 6), (4, 2, 6), (9, 6, 5, 6)]
test_tuple = (6, )
Salida : [(5, 6, 6), (4 , 2, 6), (9, 6, 5, 6)]

Método: UsoCounter() + list comprehension + all()
La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la tarea de contar usando Counter(). all(), se usa para verificar si todos los elementos forman el subconjunto y la comprensión de la lista se usa para vincular toda la lógica en un bloque.

# Python3 code to demonstrate working of 
# Extract tuple supersets from List
# Using all() + list comprehension + Counter
from collections import Counter
  
# initializing list
test_list = [(5, 6, 8), (4, 2, 7), (9, 6, 5, 6)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing tuple
test_tup = (6, 6, 5)
  
# Extract tuple supersets from List
# Using all() + list comprehension + Counter
res = [sub for sub in test_list if 
       all(Counter(sub)[x] >= Counter(test_tup)[x]
       for x in Counter(test_tup))]
  
# printing result 
print("The superset tuples : " + str(res)) 
Producción :

The original list is : [(5, 6, 8), (4, 2, 7), (9, 6, 5, 6)]
The superset tuples : [(9, 6, 5, 6)]

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 *