如何使用元组扩展集合?

时间:2015-07-21 15:59:47

标签: python set

list.extend(L)不同,extend中没有set个功能。如何以pythonic方式将元组扩展为集合?

t1 = (1, 2, 3)
t2 = (3, 4, 5)
t3 = (5, 6, 7)

s = set()
s.add(t1)
s.add(t2)
s.add(t3)

print s
set([(3, 4, 5), (5, 6, 7), (1, 2, 3)])

我的预期结果是:

set([1, 2, 3, 4, 5, 6, 7])

我的解决方案如下:

for item in t1 :
    s.add(item)

3 个答案:

答案 0 :(得分:12)

尝试union方法 -

t1 = (1, 2, 3)
t2 = (3, 4, 5)
t3 = (5, 6, 7)
s= set()
s = s.union(t1)
s = s.union(t2)
s = s.union(t3)
s
>>> set([1, 2, 3, 4, 5, 6, 7])

或者如评论中所示,清洁方法 -

s = set().union(t1, t2, t3)

答案 1 :(得分:9)

或者:

>>> newSet = s.union(t1, t2, t3)
set([1, 2, 3, 4, 5, 6, 7])

或以下,实际更新时无需任何指定

>>> s.update( t1, t2, t3)
>>> s
set([1, 2, 3, 4, 5, 6, 7])

答案 2 :(得分:6)

您使用的是错误的方法。 add添加了一个项目,update将该集合与参数联合起来。

t1 = (1, 2, 3)
t2 = (3, 4, 5)
t3 = (5, 6, 7)

s = set()
s.update(t1)
s.update(t2)
s.update(t3)

print s