Prüfen Sie, ob set eine Teilmenge ist, und berücksichtigen Sie dabei die Anzahl (Multiplizität) der einzelnen Elemente in der Menge
Ich weiß, ich kann testen, ob set1 eine Teilmenge von set2 ist mit:
{'a','b','c'} <= {'a','b','c','d','e'} # True
Aber das Folgende ist auch wahr:
{'a','a','b','c'} <= {'a','b','c','d','e'} # True
Wie muss ich berücksichtigen, wie oft ein Element in der Menge vorkommt, damit:
{'a','b','c'} <= {'a','b','c','d','e'} # True
{'a','a','b','c'} <= {'a','b','c','d','e'} # False since 'a' is in set1 twice but set2 only once
{'a','a','b','c'} <= {'a','a','b','c','d','e'} # True because both sets have two 'a' elements
Ich weiß, ich könnte etwas machen wie:
A, B, C = ['a','a','b','c'], ['a','b','c','d','e'], ['a','a','b','c','d','e']
all([A.count(i) == B.count(i) for i in A]) # False
all([A.count(i) == C.count(i) for i in A]) # True
Aber ich habe mich gefragt, ob es so etwas prägnantes gibtset(A).issubset(B,count=True)
oder eine Möglichkeit, sich vom Listenverständnis fernzuhalten. Vielen Dank!