Python: recuento de frecuencia de elementos en varias listas

A veces, mientras trabajamos con listas de Python, podemos tener un problema en el que necesitamos extraer la frecuencia de los elementos en la lista. Pero esto se puede agregar trabajo si tenemos más de 1 lista en la que trabajamos. Analicemos ciertas formas en que se puede realizar esta tarea.

Método #1: Usar la comprensión del diccionario +set() + count()
Esta es una de las formas en que se puede realizar esta tarea. En este, realizamos la tarea de contar usando count() y set() y la extensión de la lógica se realiza usando comprensión de diccionario.

# Python3 code to demonstrate 
# Elements frequency count in multiple lists
# using set() + count() + dictionary comprehension
  
# Initializing lists
test_list1 = [1, 3, 2, 4, 5, 1, 2]
test_list2 = [4, 1, 4, 3, 4, 2, 4]
test_list3 = [1, 4, 5, 3, 4, 5, 4]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
print("The original list 3 is : " + str(test_list3))
  
# Elements frequency count in multiple lists
# using set() + count() + dictionary comprehension
res = {idx : [test_list1.count(idx), test_list2.count(idx), test_list3.count(idx)]
      for idx in set(test_list1 + test_list2 + test_list3)}
              
# printing result 
print ("The frequency of each element is : " + str(res))
Producción :

La lista original 1 es: [1, 3, 2, 4, 5, 1, 2]
La lista original 2 es: [4, 1, 4, 3, 4, 2, 4]
La lista original 3 es: [1 , 4, 5, 3, 4, 5, 4]
La frecuencia de cada elemento es: {1: [2, 1, 1], 2: [2, 1, 0], 3: [1, 1, 1] , 4: [1, 4, 3], 5: [1, 0, 2]}

Método n.º 2: uso de Counter() + map()la comprensión del diccionario +
La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En este, la tarea de encontrar la frecuencia se realiza utilizando Counter() y map().

# Python3 code to demonstrate 
# Elements frequency count in multiple lists
# using map() + Counter() + dictionary comprehension
from collections import Counter
  
# Initializing lists
test_list1 = [1, 3, 2, 4, 5, 1, 2]
test_list2 = [4, 1, 4, 3, 4, 2, 4]
test_list3 = [1, 4, 5, 3, 4, 5, 4]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
print("The original list 3 is : " + str(test_list3))
  
# Elements frequency count in multiple lists
# using map() + Counter() + dictionary comprehension
freq = list(map(Counter, (test_list1, test_list2, test_list3)))
res = {ele: [cnt[ele] for cnt in freq] for ele in {ele for cnt in freq for ele in cnt}}
              
# printing result 
print ("The frequency of each element is : " + str(res))
Producción :

La lista original 1 es: [1, 3, 2, 4, 5, 1, 2]
La lista original 2 es: [4, 1, 4, 3, 4, 2, 4]
La lista original 3 es: [1 , 4, 5, 3, 4, 5, 4]
La frecuencia de cada elemento es: {1: [2, 1, 1], 2: [2, 1, 0], 3: [1, 1, 1] , 4: [1, 4, 3], 5: [1, 0, 2]}

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 *