1、不同元素组成
2、无序
3、集合中元素必须是不可变类型(数字、字符串、元组)
s = set(‘hello’)
{‘o’, ‘h’, ‘e’, ‘l’}
s = set(["alex", "alex", "sb"])
print(s)
# {'alex', 'sb'}
add
给集合添加一个元素,只能添加一个,如果被添加的元素可遍历,会作为一个元素添加到集合,若需要循环添加到集合中请使用update。
s = {1, 2, 3}
s.add('sb')
print(s)
# {1, 2, 3, 'sb'}
s = set(['alex', '2b', 'sb'])
s.add(('fool',' shazi', 'yaba'))
print(s)
# {('fool', ' shazi', 'yaba'), 'sb', 'alex', '2b'}
update
给集合一次添加多个值,将多个集合的并集union(|)重新赋值给当前集合,会改变当前集合。简单的求集合的并集并不会改变参与运算的集合。
s = {'hello', 'hi'}
s1 = {'world', 'china'}
s.update(s1)
print(s)
# {'hello', 'world', 'china', 'hi'}
s.update('alex', '789')
print(s)
# {'a', 'x', '7', 'e', '8', 'hi', '9', 'china', 'hello', 'world', 'l'}
clear
清空集合
s = {1, 'v', 'vv7'}
s.clear()
print(s)
# set()
copy
s = {'copy', 'cut', 'delete'}
s1 = s.copy()
print(s1)
# {'cut', 'copy', 'delete'}
remove、discard删除元素
remove、discard没有返回值。被删除的元素如果不存在,remove会报错,discard不报。
s = {'wowo', 'jiji', 'bibi'}
s.remove('wowo')
print(s)
# {'bibi', 'jiji'}
s.discard('jiji')
print(s)
# {'bibi'}
pop
因为集合是无序的,所以无法制定索引。可以用remove、discard删除指定的集合元素。随机删除一个元素,并返回被删除的元素。如果被删除元素的集合是空则报错。
s = {'apple', 'banana', 'orange'}
v = s.pop()
print(v)
# banana
print(s)
# {'apple', 'orange'}
交集intersection
返回参与运算的集合公共元素,并不会改变参与运算的集合。
s = {'basketball', 'football', 'baseball', 'swim', 'run', 'bike', 'fish'}
s1 = {'football', 'swim', 'movie', 'book'}
print(s.intersection(s1))
print(s & s1)
# {'football', 'swim'}
intersection_update
求交集并把运算结果赋值给参与运算的集合,无返回值
s = {'hello', 'hi'}
s1 = {'world', 'china', 'hi'}
s.intersection_update(s1)
print(s)
# {'hi'}
isdisjoint
如果集合交集为空集合返回true,否则false。
s = {'hello', 'hi'}
s1 = {'world', 'china', 'hi'}
v =s.isdisjoint(s1)
print(v)
# False
s = {'hello', 'hi'}
s1 = {'world', 'china'}
v =s.isdisjoint(s1)
print(v)
# True
并集
s = {'basketball', 'football', 'baseball', 'swim', 'run', 'bike', 'fish'}
s1 = {'football', 'swim', 'movie', 'book'}
print(s.union(s1))
print(s | s1)
# {'swim', 'bike', 'baseball', 'book', 'movie', 'fish', 'basketball', 'football', 'run'}
差集
s = {'basketball', 'football', 'baseball', 'swim', 'run', 'bike', 'fish'}
s1 = {'football', 'swim', 'movie', 'book'}
print(s.difference(s1))
print(s - s1)
# {'fish', 'basketball', 'bike', 'run', 'baseball'}
print(s1.difference(s))
print(s1 - s)
# {'book', 'movie'}
difference_update
把集合运算的差集重新复制给参与运算的集合,会改变原集合。
s = {'hello', 'hi'}
s1 = {'world', 'china', 'hi'}
s.difference_update(s1)
print(s)
# {'hello'}
issubset
判断一个集合是否是另一个的子集,是返回true, 否则false。
s = {'hello', 'hi'}
s1 = {'hi'}
v =s1.issubset(s)
print(v)
# True
issuperset
判断一个集合是另一个的父集,是返回true否则false。
s = {'hello', 'hi'}
s1 = {'hi'}
v =s.issuperset(s1)
print(v)
# True
symmetric_difference
s = {'hello', 'hi'}
s1 = {'hi', 'world'}
v =s.symmetric_difference(s1)
print(v)
# {'hello', 'world'}
symmetric_difference_update
s = {'hello', 'hi'}
s1 = {'hi', 'world'}
s.symmetric_difference_update(s1)
print(s)
# {'hello', 'world'}