Python – Restringir la frecuencia de los elementos en la lista

Dada una lista y una lista de frecuencia de elementos, restrinja la frecuencia de los elementos en la lista de la lista de frecuencia.

Entrada : test_list = [1, 4, 5, 4, 1, 4, 4, 5, 5, 6], restrct_dict = {4: 3, 1: 1, 6: 1, 5: 1} 
Salida : [1, 4, 5, 4, 4, 6] 
Explicación : el límite de 1 es 1, se elimina cualquier instancia superior. Similar con todos los elementos.
Entrada : test_list = [1, 4, 5, 4, 1, 4, 4, 5, 5, 6], restrct_dict = {4: 2, 1: 1, 6: 1, 5: 1} 
Salida : [1, 4, 5, 4, 6] 
Explicación : el límite de 4 es 3, cualquier aparición mayor que eso se elimina. Similar con todos los elementos. 
 

Método: Usar loop + defaultdict()

En esto, iteramos para los elementos y mantenemos el contador de búsqueda para cada elemento usando defaultdict(), si algún elemento excede el dictado restringido, ese elemento no se agrega en adelante.

Python3

# Python3 code to demonstrate working of
# Restrict Elements Frequency in List
# Using loop + defaultdict()
from collections import defaultdict
 
# initializing list
test_list = [1, 4, 5, 4, 1, 4, 4, 5, 5, 6]
 
# printing original list
print("The original list is : " + str(test_list))
 
# initializing restrct_dict
restrct_dict = {4 : 3, 1 : 1, 6 : 1, 5 : 2}
 
res = []
lookp = defaultdict(int)
for ele in test_list:
    lookp[ele] += 1
     
    # move to next ele if greater than restrct_dict count
    if lookp[ele] > restrct_dict[ele]:
        continue
    else:
        res.append(ele)
 
# printing results
print("Filtered List : " + str(res))
Producción

The original list is : [1, 4, 5, 4, 1, 4, 4, 5, 5, 6]
Filtered List : [1, 4, 5, 4, 4, 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 *