集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...}
或者
set(value)
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} print(basket) # 这里演示的是去重功能 print('orange' in basket ) print('crabgrass' in basket) # 快速判断元素是否在集合内 ##两个集合之间的运算 a = set('abracadabra') b = set('alacazam') print(a) print(b) print(a - b) #集合a中包含而集合b中不包含的元素 print(a | b) #集合a或b中包含的所有元素 print(a & b) #集合a和b中都包含了的元素 print(a ^ b) #不同时包含于a和b的元素
一、集合的基本操作
#集合的基本操作 #firstset = set(('wuzm','liyanan','shanbaoliang')) firstset = {'wuzm','liyanan','shanbaoliang'} print(firstset) #增加元素 firstset.add('wuzongmei') #将元素添加到集合中,如果元素已存在,则不进行任何操作。 firstset.update({'abcd','hahahah'}) #update,也可以添加元素,且参数可以是列表,元组,字典等 firstset.update([4,5],[5,8]) #移除元素 firstset.remove('wuzm') #移除某个元素,不存在会发生错误 firstset.discard('wuzm') #另一个方法移除集合中的元素,且如果元素不存在,不会发生错误 firstset.pop() #设置随机删除集合中的一个元素 firstset.clear() #清空集合 len(firstset) #计算集合元素的个数
二、集合的内置方法
复制:set.copy()
firstset = {'wuzm','liyanan','shanbaoliang'} x=firstset.copy() print(x) #拷贝一个集合,无返回值
取差集:difference() 和 difference_update()
difference_update()
方法与 difference()
方法的区别在于 difference()
方法返回一个移除相同元素的新集合,而 difference_update()
方法是直接在原来的集合中移除元素,没有返回值。
firstset = {'wuzm','liyanan','shanbaoliang'} secondset = {'wuzm','wuzongling','wuzongmei'} print(firstset.difference(secondset)) # 返回firstset和secondset集合的差集 #返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。 firstset.difference_update(secondset) # 无返回值,用于移除两个集合中都存在的元素。 print(firstset) #输出{'liyanan','shanbaoliang'}
取交集:intersection() 和 intersection_update()
intersection_update()
方法不同于 intersection()
方法,因为 intersection()
方法是返回一个新的集合,而 intersection_update()
方法是在原始的集合上移除不重叠的元素。
firstset = {'wuzm','liyanan','shanbaoliang'} secondset = {'wuzm','wuzongling','wuzongmei'} x=firstset.intersection(secondset) #返回集合的交集 print(x) firstset.intersection_update(secondset) #返回集合的交集 print(firstset)
取返回两个集合中不重复的元素集合
symmetric_difference() 方法返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。
symmetric_difference_update() 方法移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
x = {'wuzm','liyanan','shanbaoliang'} y = {'wuzm','wuzongling','wuzongmei'} x.symmetric_difference(y) print(x) x.symmetric_difference_update(y) print(x)
其他内置方法
x = {'wuzm','liyanan','shanbaoliang'} y = {'wuzm','wuzongling','wuzongmei'} print(x.isdisjoint(y)) #判断集合 y 中是否有包含 集合 x 的元素,如果不包含返回 True,否则返回 False。 print(x.issubset(y)) #判断集合x的所有元素是否都包含在指定集合y中,如果是则返回 True,否则返回 False。 print(x.issuperset(y)) #判断指定集合y的所有元素是否都包含在原始的集合x中,如果是则返回 True,否则返回 False。 print(x.union(y)) #返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。