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