集合是一個無序的不重復元素序列,集合中的元素必須是不可變類型
集合的創建與刪除
用{}直接創建
用集合推導式創建
用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'}