Manchmal können wir bei der Arbeit mit Python-Tupeln ein Problem haben, bei dem wir die Häufigkeit jedes Werts im Tupel extrahieren müssen. Dies wurde früher gelöst. Wir können eine Modifikation haben, in der wir eine Liste erstellen müssen, in der der Index den Schlüssel darstellt und dessen Wert die Häufigkeit dieser Indexnummer darstellt. Diese Art von Problem kann Anwendungen im Bereich der Konkurrenzprogrammierung haben. Lassen Sie uns bestimmte Möglichkeiten diskutieren, wie wir dieses Problem lösen müssen.

Eingabe : test_list = [('Gfg', 1), ('ist', 1), ('am besten', 1), ('für', 1), ('Geeks', 1)]
Ausgabe : [0, 5, 0, 0, 0, 0]

Eingabe : test_list = [('Gfg', 5), ('is', 5)]
Ausgabe : [0, 0, 0, 0, 0, 2]

Methode 1: Verwenden der Schleife
Dies ist ein Brute-Force-Ansatz, mit dem diese Aufgabe ausgeführt werden kann. In diesem Fall führen wir die Aufgabe der Frequenzzuweisung durch, indem wir die vorinitialisierte Liste iterieren und zuweisen.

  
test_list = [('Gfg', 3), ('is', 3), ('best', 1), ('for', 5), ('geeks', 1)] 
  
print("The original list is : " + str(test_list)) 
  
res = [0 for _ in range(6)] 
for ele in test_list: 
    res[ele[1]] = res[ele[1]] + 1
  
print("The Frequency list : " + str(res))  
Ausgabe :

Die ursprüngliche Liste lautet: [('Gfg', 3), ('ist', 3), ('am besten', 1), ('für', 5), ('Geeks', 1)]
Die Frequenzliste: [0, 2, 0, 2, 0, 1]

 

Methode 2: Verwenden des Counter()+ Listenverständnisses
Die Kombination der oben genannten Funktionen wird verwendet, um dieses Problem zu lösen. In diesem Fall führen wir die Aufgabe aus, Frequenzen mit Counter() zu berechnen, und das Rendern in der Liste erfolgt durch Listenverständnis.

from collections import Counter 
  
test_list = [('Gfg', 3), ('is', 3), ('best', 1), ('for', 5), ('geeks', 1)] 
  
print("The original list is : " + str(test_list)) 
  
cntr = Counter(ele[1] for ele in test_list) 
res = [cntr[idx] for idx in range(6)] 
  
print("The Frequency list : " + str(res))  
Ausgabe :
Die ursprüngliche Liste lautet: [('Gfg', 3), ('ist', 3), ('am besten', 1), ('für', 5), ('Geeks', 1)]
Die Frequenzliste: [0, 2, 0, 2, 0, 1]