Python: conserva registros con N ocurrencias de K

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))
Producción : 

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))
Producción : 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *