Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Elementhäufigkeiten in einer ungeordneten Liste effizient zählen?

Wie kann ich Elementhäufigkeiten in einer ungeordneten Liste effizient zählen?

Susan Sarandon
Susan SarandonOriginal
2024-12-25 15:45:18691Durchsuche

How Can I Efficiently Count Element Frequencies in an Unordered List?

Elementhäufigkeit in ungeordneten Listen zählen

Dieses Programmierdilemma sucht nach einer Lösung für das Zählen der Häufigkeit von Elementen in einer ungeordneten Liste. Bei einer gegebenen Werteliste besteht das Ziel darin, die Anzahl jedes einzelnen Elements zu bestimmen, das in der Liste erscheint.

Python-Implementierung mit Collections.Counter

Für Python-Versionen Ab Version 2.7 besteht eine praktische Methode zum Zählen der Elementhäufigkeiten in der Verwendung der Klasse „collections.Counter“. So können Sie Counter nutzen, um das Problem zu lösen:

import collections

a = [5, 1, 2, 2, 4, 3, 1, 2, 3, 1, 1, 5, 2]
counter = collections.Counter(a)

# Extract the frequencies in the desired order
frequencies = [counter[x] for x in sorted(counter.keys())]

Dieser Ansatz liefert eine Liste von Häufigkeiten [4, 4, 2, 1, 2], die der Anzahl jedes einzelnen Elements im Original entsprechen Liste (a), nämlich 4 Instanzen von 1, 4 von 2, 2 von 3, 1 von 4 und 2 von 5.

Überlegungen für Python-Versionen vor 2.7

Wenn Sie Python 2.6 oder früher verwenden, ist das Herunterladen einer externen Implementierung von Counter eine alternative Möglichkeit. Solche Implementierungen sind online leicht verfügbar.

Das obige ist der detaillierte Inhalt vonWie kann ich Elementhäufigkeiten in einer ungeordneten Liste effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn