Python max mit der gleichen Anzahl von Instanzen

8

Ich habe eine Liste:

%Vor%

Ich wollte das häufigste Element der Liste anzeigen, also habe ich Folgendes verwendet:

%Vor%

Ich habe jedoch festgestellt, dass es zwei Elemente der Liste geben kann, die die gleiche Häufigkeit haben, wie die 1 und 2 in der obigen Liste. Max gibt nur die erste Instanz eines maximalen Frequenzelements aus.

Welche Art von Befehl könnte eine Liste überprüfen, um zu sehen, ob zwei Elemente beide die maximale Anzahl von Instanzen haben, und wenn ja, beide ausgeben? Ich bin hier ratlos.

    
james_kansas 01.04.2012, 01:06
quelle

3 Antworten

13

Mit einem Ansatz, der Ihrem aktuellen ähnlich ist, würden Sie zuerst die maximale Anzahl finden und dann nach jedem Element mit dieser Anzahl suchen:

%Vor%

Alternativ können Sie auch die nette Klasse Counter verwenden, die verwendet werden kann effizient, naja, zähle Zeug:

%Vor%

Dann können Sie ein Listenverständnis verwenden, um alle Elemente zu erhalten, die die maximale Anzahl haben:

%Vor%     
Niklas B. 01.04.2012, 01:09
quelle
3

Bearbeiten: Geänderte Lösung

%Vor%     
jamylak 01.04.2012 02:15
quelle
2
%Vor%

Ausgabe:

%Vor%

Ich habe dieses einfache Programm geschrieben, ich denke, es könnte auch funktionieren. Ich war mir der Funktion most_common() nicht bewusst, bis ich eine Suche mache. Ich denke, das wird so viele wiederkehrende Elemente wie möglich zurückgeben, es funktioniert durch den Vergleich des Elements mit der höchsten Häufigkeit, wenn ich ein häufigeres Element sehe, löscht es die Ergebnisliste und fügt es einmal an. oder wenn es die gleiche Frequenz ist, wird es einfach angefügt. Und mach weiter, bis der ganze Counter durchlaufen ist.

    
George 01.04.2012 01:43
quelle

Tags und Links