不像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)])
Run Code Online (Sandbox Code Playgroud)
我的预期结果是:
set([1, 2, 3, 4, 5, 6, 7])
Run Code Online (Sandbox Code Playgroud)
我的解决方案是这样的:
for item in t1 :
s.add(item)
Run Code Online (Sandbox Code Playgroud)
Ana*_*mar 13
试试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])
Run Code Online (Sandbox Code Playgroud)
或者如评论中所示,清洁方法 -
s = set().union(t1, t2, t3)
Run Code Online (Sandbox Code Playgroud)
或者:
>>> newSet = s.union(t1, t2, t3)
set([1, 2, 3, 4, 5, 6, 7])
Run Code Online (Sandbox Code Playgroud)
或者以下,实际更新,无需任何分配
>>> s.update( t1, t2, t3)
>>> s
set([1, 2, 3, 4, 5, 6, 7])
Run Code Online (Sandbox Code Playgroud)
你使用的是错误的方法.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
Run Code Online (Sandbox Code Playgroud)