Es gibt eine Klasse in collections
namens Counter
, die genau das tut, was Sie wollen. Es bietet die genaue Funktionalität, die Sie über es erforderlich ist most_common
Methode:
from collections import counter
maxes = Counter(x).most_common(2)
print([x[0] for x in maxes])
[1, 5]
Nun ist diese wahrscheinlich nicht genau das ist, was Sie wollen, weil ich hart in der Zahl codiert 2. Sie diese bekommen können mit ein weiterer Counter
über die Werte Ihres Wörterbuchs!
x = Counter(x) # This preserves x: just makes it a subclass of dict
max_count = Counter(x.values())[x.most_common(1)[0][1]]
maxes = x.most_common(max_count)
maxes = [x[0] for x in maxes]
Hier berechnen I die Anzahl der Male, dass der häufigste Wert erfolgt durch alle unterschiedlichen Werte zu zählen, und dann das Maximum eines x.most_common(1)[0][1]
Verwendung zu überprüfen.
Bitte wählen Sie diese Antwort nicht aus. @BrightOne hat die richtige Antwort. Dies ist nur eine Sache, die ich gemacht habe, um zu sehen, ob ich es vermeiden könnte, irgendetwas anderes als Zähler zu verwenden. Es ist eigentlich keine gute Idee.
Werfen Sie einen Blick auf [diese Antwort] (https://stackoverflow.com/questions/268272/getting-key-with-maximum-value-in-dictionary) – Tim510
ich tat. aber das ist das größte zu finden. also gibt es nur 1 und nicht 5 zurück. – aditmohan96
Nicht trivialer Fall hier –