A veces, mientras trabajamos con la lista de tuplas de Python, podemos tener un problema en el que necesitamos realizar la retención de todos los registros donde las ocurrencias de K son N veces. Este tipo de problema puede presentarse en dominios como el desarrollo web y la programación diaria. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : lista_prueba = [(4, 5, 5, 4), (5, 4, 3)], K = 5, N = 2
Salida : [(4, 5, 5, 4)]
Entrada : lista_prueba = [( 4, 5, 5, 4), (5, 4, 3)], K = 5, N = 3
Salida : []
Método n.º 1: Usar comprensión de listas + contar()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de contar ocurrencias y condiciones e iteraciones utilizando la comprensión de listas.
Python3
# Python3 code to demonstrate working of # Retain records with N occurrences of K # Using count() + list comprehension # initializing list test_list = [(4, 5, 6, 4, 4), (4, 4, 3), (4, 4, 4), (3, 4, 9)] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 4 # initializing N N = 3 # Retain records with N occurrences of K # Using count() + list comprehension res = [ele for ele in test_list if ele.count(K) == N] # printing result print("Filtered tuples : " + str(res))
The original list is : [(4, 5, 6, 4, 4), (4, 4, 3), (4, 4, 4), (3, 4, 9)] Filtered tuples : [(4, 5, 6, 4, 4), (4, 4, 4)]
Método n.º 2: Uso de la comprensión de listas + sum()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de calcular el recuento total de K usando sum().
Python3
# Python3 code to demonstrate working of # Retain records with N occurrences of K # Using list comprehension + sum() # initializing list test_list = [(4, 5, 6, 4, 4), (4, 4, 3), (4, 4, 4), (3, 4, 9)] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 4 # initializing N N = 3 # Retain records with N occurrences of K # Using list comprehension + sum() res = [ele for ele in test_list if sum(cnt == K for cnt in ele) == N] # printing result print("Filtered tuples : " + str(res))
The original list is : [(4, 5, 6, 4, 4), (4, 4, 3), (4, 4, 4), (3, 4, 9)] Filtered tuples : [(4, 5, 6, 4, 4), (4, 4, 4)]
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