Вы можете использовать set.itersection()
, set.union()
и т. Д. В качестве статических методов , передавая им несколько наборов:
>>> ops = {'and': set.intersection, 'or': set.union}
>>> set1 = {1, 2, 3}
>>> set2 = {3, 4, 5}
>>> ops['and'](set1, set2)
{3}
>>> ops['or'](set1, set2)
{1, 2, 3, 4, 5}
В качестве альтернативы, вы можете сопоставить операции с именами методови используйте getattr()
:
>>> ops = {'and': 'intersection', 'or': 'union'}
>>> getattr(set1, ops['and'])(set2)
{3}
>>> getattr(set1, ops['or'])(set2)
{1, 2, 3, 4, 5}