Я предполагаю, что вы пытаетесь избежать промежуточных созданий объектов frozenset при создании союза?
Вот один из способов сделать это. ПРИМЕЧАНИЕ: изначально использовалось itertools.chain()
, но, как отмечается в комментарии Кенни, приведенная ниже версия немного лучше:
import itertools
def mkunion(*args):
return frozenset(itertools.chain.from_iterable(args))
Вызывать так:
a = set(['a','b','c'])
b = set(['a','e','f'])
c = mkunion(a,b) # => frozenset(['a', 'c', 'b', 'e', 'f'])