python set 的添加有两种常用方法,分别是add和update。 add方法:是把要传入的元素做为一个整个添加到 set 中,例如:
1 2 3 4
>>> a = set('boy') >>> a.add('python') >>> a {'y', 'b', 'o', 'python'}
update方法:是把要传入的元素拆分,做为个体传入到 set 中,利用这个特效update可以添加多项,例如:
1 2 3 4 5 6 7
>>> a = set('boy') >>> a.update('python') >>> a {'y', 'p', 't', 'b', 'n', 'h', 'o'} >>> a.update('['ant','bat','cat']')#传入 set,并拆分 >>> a {'y', 'p', 'ant', 't', 'b', 'n', 'h', 'cat', 'o', 'bat'}
删除
remove,discard,pop方法: remove和discard都是删除 set 内元素的方法,区别在于remove删除不存在的元素时,会返回一个KeyError而discard不会。详情以及其他不同 pop方法按顺序删除元素,并返回删除元素
1 2 3 4 5 6 7 8 9 10 11
set(['y', 'python', 'b', 'o','n']) >>> a.remove('python') #remove() >>> a set(['y', 'b', 'o', 'n']) >>> a.discard('o') #discard() >>> a set(['y', 'b', 'n']) >>> a.pop() #pop() 'y' >>> a set(['b', 'n'])
其他
clear清空 set copy复制 set
交集 并集 差集 对称差集 子集超集
交集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
>>> n = set('abc') >>> m = set('bcdef') >>> m & n #交集 & {'c', 'b'} >>> m.intersection(n) #交集 使用 intersection() 方法,取交集,创建新的set对象 {'c', 'b'} >>> m.intersection_update(n) #交集 使用 intersection_update() 方法,取交集,更新原来的set对象 >>> m {'c', 'b'} >>> m = set('bcdef') >>> m.isdisjoint(n) #使用 isdisjoint() 方法,没有交集,返回True,否则,返回False False >>> s = {'a'} >>> m.isdisjoint(s) True >>> s.isdisjoint(m) True
并集
1 2 3 4 5 6
>>> n = set('abc') >>> m = set('bcdef') >>> m | n #并集 | {'c', 'f', 'b', 'd', 'e', 'a'} >>> m.union(n) #并集 使用 union() 方法,取并集,创建新的set对象 {'c', 'f', 'b', 'd', 'e', 'a'}
差集
与前后顺序有关
1 2 3 4 5 6 7 8 9 10
>>> n = set('abc') >>> m = set('bcdef') >>> m - n # m 与 n 的差集 {'e', 'd', 'f'} >>> n - m # n 与 m 的差集 {'a'} >>> m.difference(n) #使用 difference() 方法,m 与 n 的差集,创建新的set对象 {'e', 'd', 'f'} >>> n.difference(m) #使用 difference() 方法,n 与 m 的差集,创建新的set对象 {'a'}
对称差集
1 2 3 4 5 6 7
>>> m ^ n #对称差集-------------m 与 n 共同部分的补集 {'e', 'd', 'a', 'f'} >>> m.symmetric_difference(n) #使用 symmetric_difference() 方法,取对称差集,创建新的set对象 {'e', 'd', 'a', 'f'} >>> m.symmetric_difference_update(n) #使用 symmetric_difference_update() 方法,取对称差集,更新原来的set对象 >>> m {'f', 'd', 'e', 'a'}
子集与超集
1 2 3 4 5 6 7
>>> m {'f', 'c', 'b', 'e', 'd'} >>> k = {'f','b','e'} >>> k.issubset(m) # k 是 m 的子集 True >>> m.issuperset(k) # m 是 k 的超集 True