如何使用元组扩展集合?
How can I extend a set with a tuple?
与list.extend(L)
不同,set
中没有extend
功能。如何以 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)
你用错了方法。 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
尝试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)
或者:
>>> 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])
与list.extend(L)
不同,set
中没有extend
功能。如何以 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)
你用错了方法。 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
尝试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)
或者:
>>> 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])