Gruppieren Iterabler mit Python (Gruppieren Iterabler mit Python), lesson, Seite 724592
https://www.purl.org/stefan_ram/pub/gruppieren_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Statistik Iterabler mit Python 

Die Klasse ›Counter‹ zählt das Vorkommen von Werten in einem Iterablen. Es ergibt sich ein Objekt jener Klasse, welches wie eine Zuordnung ausgelesen werden kann.

Wir sehen, daß das Wort „beispielsweise“ vier „e“ enthält und im aktuellen Verzeichnis jedes Wort genau einmal vorkommt.

Konsolenprotokoll

from pprint import pprint

from collections import Counter

"beispielsweise"

'beispielsweise'
Counter( _ )
Counter({'e': 4, 'i': 3, 's': 3, 'b': 1, 'p': 1, 'l': 1, 'w': 1})
pprint( _ )
Counter({'e': 4, 'i': 3, 's': 3, 'b': 1, 'p': 1, 'l': 1, 'w': 1})
tuple( _ )
('b', 'e', 'i', 's', 'p', 'l', 'w')

Ein Counter-Objekt ist selber auch wieder iterabel  und liefert als Iterables die einzelnen gruppierten Werte ohne ihre Zähler, wie oben mit »tuple« gezeigt wurde.

Konsolenprotokoll
pprint( Counter( "beispielsweise" ))
Counter({'e': 4, 'i': 3, 's': 3, 'b': 1, 'p': 1, 'l': 1, 'w': 1})
Konsolenprotokoll
tuple( Counter( "beispielsweise" ))
('b', 'e', 'i', 's', 'p', 'l', 'w')
Konsolenprotokoll
dir()
['Counter', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'pprint']
Counter( _ )
Counter({'Counter': 1, '__annotations__': 1, '__builtins__': 1, '__doc__': 1, '__loader__': 1, '__name__': 1, '__package__': 1, '__spec__': 1, 'pprint': 1})
pprint( _ )
Counter({'Counter': 1,
'__annotations__': 1,
'__builtins__': 1,
'__doc__': 1,
'__loader__': 1,
'__name__': 1,
'__package__': 1,
'__spec__': 1,
'pprint': 1})
Konsolenprotokoll
pprint( Counter( dir() ))
Counter({'Counter': 1,
'__annotations__': 1,
'__builtins__': 1,
'__doc__': 1,
'__loader__': 1,
'__name__': 1,
'__package__': 1,
'__spec__': 1,
'pprint': 1})

Zähler

Die einzelnen Einträge eines Zählerobjekts können mit »getitem« abgerufen werden.

Protokoll

from collections import Counter

c = Counter( "beispielsweise" )

Counter({'e': 4, 'i': 3, 's': 3, 'b': 1, 'p': 1, 'l': 1, 'w': 1})
c[ "e" ]
4

Beispiel

Vergleiche von Zählern

from collections import Counter

Counter( "abc" )== Counter( "acb" )

True
Counter( "abc" )== Counter( "acbb" )
False

Übersicht Iterable  und Aufrufbare 

Iteratoren (und damit auch Iterable)
Ergebnisse von »enumerate«

from multiprocessing.pool import job_counter
job_counter

from sys import stdin
stdin

Iterable
alle Iteratoren
str-Objekte (»"abc"«)
list-Objekte (»dir()«)
tuple-Objekte (»tuple()«)
dict-Objekte (»dict()«)
from itertools import count
count()
range-Ergebnisse
Counter-Objekte
Aufrufbare, die Iteratoren akzeptieren
»next«
Aufrufbare, die Iterable akzeptieren
»dict«
»iter«
»tuple«
»sum« (nur Iterable, die Zahlen  liefern)
»min«
»max«
»Counter« (nach »from collections import Counter«)
str.join‹ (d.h. die join-Methode eines str-Objektes)

Übungsaufgaben

/   Wortfrequenzen

Erstellen Sie durch eine Abfolge von Python -Anweisungen eine Statistik der Häufigkeit der Wörter in dem Text ›t‹.

Der Text ›t
t = 'Sie fürchten zu viel zu tun und tun zu wenig und fürchten zu wenig zu tun und tun zu viel'

/   Wortfrequenzen °

Schreiben Sie ein Anagrammprädikat ›a‹, eine Funktion, die ›True‹ ergibt, wenn sie mit zwei Wörtern aufgerufen wird, deren eines ein Anagramm des anderen ist.

Beispiel
a( 'wiki', 'kiwi' )
True
a( 'wikki', 'kiwi' )
False

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724592 stefan_ram:724592 Gruppieren Iterabler mit Python Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724592, slrprddef724592, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/gruppieren_python