Python – Frecuencia de elementos de otra lista

Dadas dos listas, calcule la frecuencia de los elementos de la lista 2 que aparecen en la lista 1.

Entrada : test_list1 = [4, 6, 8, 9], test_list2 = [4, 6, 6, 5, 8, 10, 4, 9, 8, 10, 1]
Salida : {4: 2, 6: 2, 8: 2, 9: 1}
Explicación : 4 ocurre 2 veces, 6 ocurre 2 veces en la segunda lista y así sucesivamente.

Entrada : test_list1 = [4, 6, 8, 9], test_list2 = [4, 6, 5, 8, 10, 4, 9, 8, 10, 1]
Salida : {4: 2, 6: 1, 8: 2, 9: 1}
Explicación : 4 aparece 2 veces, 6 aparece 1 vez en la segunda lista y así sucesivamente.

Método n. ° 1: usar la comprensión del diccionario + contar()

Esta es una de las formas en que se puede realizar esta tarea. En esto, count() se usa para extraer el conteo de elementos en la lista 2 y la comprensión del diccionario se usa para compilar el resultado e iterar a través de los valores de la lista 1.

Python3

# Python3 code to demonstrate working of 
# Frequency of elements from other list
# Using dictionary comprehension + count()
  
# initializing lists
test_list1 = [4, 6, 8, 9, 10]
test_list2 = [4, 6, 6, 5, 8, 10, 4, 9, 8, 10, 1]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# count() used to perform count.
# returns 0 is no occurrence.
# ignores different new elements in list 2
res = {key : test_list2.count(key) for key in test_list1}
  
# printing result 
print("Lists elements Frequency : " + str(res))
Producción

The original list 1 : [4, 6, 8, 9, 10]
The original list 2 : [4, 6, 6, 5, 8, 10, 4, 9, 8, 10, 1]
Lists elements Frequency : {4: 2, 6: 2, 8: 2, 9: 1, 10: 2}

Método #2: Usando Counter() + setdefault() + loop

Esta es otra forma en la que se puede realizar esta tarea. En esto, calculamos la frecuencia usando Counter() y asignamos valores usando loop. El setdefault() se usa para inicializar el contador a 0 para valores no presentes.

Python3

# Python3 code to demonstrate working of 
# Frequency of elements from other list
# Using Counter() + setdefault() + loop
from collections import Counter
  
# initializing lists
test_list1 = [4, 6, 8, 9, 10]
test_list2 = [4, 6, 6, 5, 8, 10, 4, 9, 8, 10, 1]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# Counter() used to perform count on list 2
res = dict(Counter(test_list2))
  
# filtering only list 1 keys
res = {key : val for key, val in res.items() if key in test_list1} 
  
for key in test_list1:
      
    # initializing elements not present in list 2 of list 1 to 0
    res.setdefault(key, 0) 
      
  
# printing result 
print("Lists elements Frequency : " + str(res))
Producción

The original list 1 : [4, 6, 8, 9, 10]
The original list 2 : [4, 6, 6, 5, 8, 10, 4, 9, 8, 10, 1]
Lists elements Frequency : {4: 2, 6: 2, 8: 2, 10: 2, 9: 1}

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 *