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))
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