Multisets werden in Python 2.7 oder höher als (veränderbare) Counter
-Objekte implementiert. Sie können viele der gleichen Operationen wie für Sätze ausführen, wie Vereinigung, Schnittpunkt, Differenz (obwohl die Anzahl negativ werden kann), usw.:
Lösung:
%Vor%Weitere Details:
%Vor% Sie können ''.join
verwenden, wenn Sie eine Zeichenfolge möchten, oder list()
, wenn Sie eine Liste möchten, obwohl ich sie nur im iterativen Format als intersection.elements()
beibehalten würde.
Verwenden Sie collections.Counter
für jedes Wort und verwenden Sie diese als Mengen:
Die Counter
ist eine dict
Unterklasse, aber eine, die alle Elemente einer Sequenz zählt, mit der Sie sie initialisieren. Daher wird "aabbcc"
zu Counter({'a': 2, 'b': 2, 'c': 2})
.
Counter verhalten sich wie Multisets. Wenn Sie 2 in einem Schnittpunkt wie oben verwenden, werden ihre Zählwerte auf die minimalen Werte in beiden Counters gesetzt, wobei nichts ignoriert wird, dessen Anzahl auf 0 fällt maximale Zählwerte werden stattdessen verwendet.
Tags und Links python intersection multiset