Python | Ocurrencia de elementos en el diccionario de valores de lista

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))
Producción :

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))
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *