Sprawdź, czy zestaw jest podzbiorem, biorąc pod uwagę liczbę (krotność) każdego elementu w zestawie

Wiem, że mogę sprawdzić, czy set1 jest podzbiorem zestawu2 z:

{'a','b','c'} <= {'a','b','c','d','e'} # True

Ale poniższe jest również prawdziwe:

{'a','a','b','c'} <= {'a','b','c','d','e'} # True

Jak mam to wziąć pod uwagę, ile razy element w zestawie występuje, aby:

{'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

Wiem, że mógłbym zrobić coś takiego:

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

Ale zastanawiałem się, czy jest coś bardziej zwięzłegoset(A).issubset(B,count=True) lub sposób na uniknięcie wyrażeń listowych. Dzięki!

questionAnswers(4)

yourAnswerToTheQuestion