A veces podemos tener una tarea en la que se nos solicite contar las ocurrencias de elementos de prueba en la lista o números ganadores, contra los números con las claves asociadas con la lista como valores. Esto puede tener aplicaciones en juegos u otras utilidades. Vamos a discutir ciertas formas en que esto se puede hacer.
Método #1: Usar la comprensión del diccionario +sum()
Esta tarea se puede realizar usando la combinación de las dos utilidades anteriores en las que usamos la comprensión del diccionario para vincular la lógica y la función de suma se puede usar para realizar la suma de las coincidencias encontradas en la lista de prueba.
# Python3 code to demonstrate # Element Occurrence in dictionary value list # using list comprehension + sum() # initializing dictionary test_dict = { "Akshat" : [1, 4, 5, 3], "Nikhil" : [4, 6], "Akash" : [5, 2, 1] } # initializing test list test_list = [2, 1] # printing original dict print("The original dictionary : " + str(test_dict)) # printing original list print("The original list : " + str(test_list)) # using list comprehension + sum() # Element Occurrence in dictionary value list res = {idx : sum(1 for i in j if i in test_list) for idx, j in test_dict.items()} # print result print("The summation of element occurrence : " + str(res))
The original dictionary : {'Nikhil': [4, 6], 'Akshat': [1, 4, 5, 3], 'Akash': [5, 2, 1]} The original list : [2, 1] The summation of element occurrence : {'Nikhil': 0, 'Akshat': 1, 'Akash': 2}
Método n.º 2: el usocollections.Counter()
de Python ofrece una función incorporada que realiza la tarea de extraer la frecuencia y, al usarla y condicionarla a la presencia en la lista de prueba, podemos resolver el problema anterior con esta función.
# Python3 code to demonstrate # Element Occurrence in dictionary value list # using collections.Counter() from collections import Counter # initializing dictionary test_dict = { "Akshat" : [1, 4, 5, 3], "Nikhil" : [4, 6], "Akash" : [5, 2, 1] } # initializing test list test_list = [2, 1] # printing original dict print("The original dictionary : " + str(test_dict)) # printing original list print("The original list : " + str(test_list)) # using collections.Counter() # Element Occurrence in dictionary value list # omits the 0 occurrence word key res = dict(Counter(j for j in test_dict for i in test_list if i in test_dict[j])) # print result print("The summation of element occurrence : " + str(res))
The original dictionary : {'Nikhil': [4, 6], 'Akshat': [1, 4, 5, 3], 'Akash': [5, 2, 1]} The original list : [2, 1] The summation of element occurrence : {'Akshat': 1, 'Akash': 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