Ich habe eine Liste von Wörtern in einem Wörterbuch mit dem Wert = die Wiederholung des Schlüsselworts, aber ich möchte nur eine Liste verschiedener Wörter, also wollte ich die Anzahl der Schlüsselwörter zählen. Gibt es eine Möglichkeit, die Anzahl der Schlüsselwörter zu zählen, oder gibt es eine andere Möglichkeit, nach bestimmten Wörtern zu suchen?
234
len(yourdict.keys())
undlen(yourdict)
sind O (1). Letzteres ist etwas schneller. Siehe meine Tests unten.len(yourdict.values())
Die Anzahl der unterschiedlichen Wörter (dh die Anzahl der Einträge im Wörterbuch) kann mithilfe der
len()
Funktion ermittelt werden.Verwenden Sie die
.keys()
Methode, um alle eindeutigen Wörter (dh die Schlüssel) zu erhalten .quelle
Das
len()
direkte Aufrufen Ihres Wörterbuchs funktioniert und ist schneller als das Erstellend.keys()
und Aufrufen eines Iterators,len()
aber die Geschwindigkeit von beiden ist im Vergleich zu allem, was Ihr Programm sonst noch tut, vernachlässigbar.quelle
Wenn es um das Zählen der Anzahl der Keywords geht, würde ich so etwas empfehlen
in der Hauptfunktion haben Sie etwas, das die Daten durchläuft und die Werte an die Funktion countoccurrences übergibt
Der Code wird ausgegeben
quelle
countoccurrences()
stattdessen sein solltecount_occurrences()
. Wenn Sie importierencollections.Counter
, gibt es auch einen viel besseren Weg, dies zu tun :from collections import Counter; store = Counter(); for data in list: store[list] += 1
.Einige Änderungen wurden an der veröffentlichten Antwort UnderWaterKremlin vorgenommen, um sie python3-sicher zu machen. Ein überraschendes Ergebnis unten als Antwort.
Systemspezifikationen:
Ergebnis:
1) = 37.0100378
2) = 37.002148899999995
Es scheint also, dass dies
len(d.keys())
derzeit schneller ist als nur die Verwendunglen()
.quelle