'Analyze set.issubset() proposal' from collections import Counter from random import shuffle def baseline_issubset(self, iterable): return self.issubset(iterable) def proposed_issubset(self, iterable): return len(self) == len(self.intersection(iterable)) events = Counter() class Int(int): def __eq__(self, other): events['eq'] += 1 return super().__eq__(other) def __hash__(self): events['hash'] += 1 return hash(str(self)) s = range(10) print(f'{s=}\n') s = set(map(Int, s)) for t in (range(2,8), range(10), range(40), range(5,45), range(-35,5)): print(f'{t=}') t = list(map(Int, list(t))) shuffle(t) for func in (baseline_issubset, proposed_issubset): events.clear() func(s, t) print(func.__name__, dict(events)) print()