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