How can I find the union on a list of sets in Python?

Ravit picture Ravit · Jul 6, 2015 · Viewed 21.9k times · Source

This is the input:

x = [{1, 2, 3}, {2, 3, 4}, {3, 4, 5}]

and the output should be:

{1, 2, 3, 4, 5}

I tried to use set().union(x) but this is the error I'm getting:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'

Answer

vaultah picture vaultah · Jul 6, 2015

The signature of set.union is union(other, ...). Unpack sets from your list:

In [6]: set.union(*x)
Out[6]: {1, 2, 3, 4, 5}