集合是一个无序的不重复元素序列,集合中的元素必须是不可变类型
集合的创建与删除
用{}直接创建
用集合推导式创建
用ser()函数将列表,元组,range对象转换成集合
numset1={1,2,3,4,5}numset2={x**2 for x in range(5)}numset3=set(ireration)
需要注意的是:创建空集合时,必须使用set()而不是{},因为{}是用来创建空字典的
empty_set=set()
集合元素的添加与删除
add()方法添加元素,被添加的元素只能是字符串,数字,布尔类型的True或False,不能是列表,元组等可迭代对象。
pop(),remove(),discard()方法可以删除集合中的一个元素,clear()方法清空所有元素
num_set={1,2,3,4,5}
num_set.add(6)
#discard(元素)
num_set.discard(1)
#pop()默认删第一个,括号里不需要参数
num_set.pop()
#remove(元素)
num_set.remove(3)print(num_set)#{4, 5, 6}
集合的并集,交集和差集操作
a=set('abc')
b=set('cdef')
#并集
print(a|b)
print(a.union(b))
#交集
print(a&b)
print(a.intersection(b))print(a-b)
print(b-a)
print(a.difference(b))#a中b没有的元素
print(b.difference(a))#b中a没有的元素#issubset() 方法用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,不是则返回 False
#isdisjoint() 方法用于判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
#difference_update() 方法用于移除两个集合中都存在的元素。
#difference_update() 方法与 difference() 方法的区别在于 difference() 方法返回一个移除相同元素的新集合,而 difference_update() 方法是直接在原来的集合中移除元素,没有返回值。
a=set('abc')
b=set('cdef')print(a.issubset(b))
print(a.isdisjoint(b))
print(a.difference_update(b))#注意没有返回值
print(a)
print(b)#{'e', 'a', 'f', 'd', 'b', 'c'}
#{'e', 'a', 'f', 'd', 'b', 'c'}
#{'c'}
#{'c'}
#{'a', 'b'}
#{'f', 'e', 'd'}
#{'a', 'b'}
#{'f', 'e', 'd'}
#False
#False
#None
#{'a', 'b'}
#{'f', 'e', 'd', 'c'}