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!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage