Wie zähle ich die Vorkommen eines Elements in einer Liste in Python?
Antworten
Zu viele Anzeigen?Es wurde vorgeschlagen, die Numpy-Funktion bincount funktioniert jedoch nur für 1d-Arrays mit nichtnegative ganze Zahlen . Außerdem könnte das resultierende Array verwirrend sein (es enthält die Vorkommen der ganzen Zahlen von min bis max der ursprünglichen Liste und setzt die fehlenden ganzen Zahlen auf 0).
Eine bessere Möglichkeit, dies mit Numpy zu tun, ist die Verwendung der einzigartig Funktion mit dem Attribut return_counts
auf True gesetzt. Es gibt ein Tupel mit einem Array der eindeutigen Werte und einem Array der Vorkommen jedes eindeutigen Wertes zurück.
# a = [1, 1, 0, 2, 1, 0, 3, 3]
a_uniq, counts = np.unique(a, return_counts=True) # array([0, 1, 2, 3]), array([2, 3, 1, 2]
und dann können wir sie paaren als
dict(zip(a_uniq, counts)) # {0: 2, 1: 3, 2: 1, 3: 2}
Es funktioniert auch mit anderen Datentypen und "2d-Listen", z. B.
>>> a = [['a', 'b', 'b', 'b'], ['a', 'c', 'c', 'a']]
>>> dict(zip(*np.unique(a, return_counts=True)))
{'a': 3, 'b': 3, 'c': 2}