集合

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

集合运算

1.&求交集

s1 = {1,2,3,4}
s2 = {2,3}
print(s1&s2) # {2, 3}

2.|并集

s1 = {1,2,3,4}
s2 = {2,3}
print(s1|s2) # {1, 2, 3, 4}

3.^补集

s1 = {1,2,3,4}
s2 = {2,3,5,6}
print(s1^s2) # {1, 4, 5, 6}

4.<子集

s1 = {1,2,3,4}
s2 = {2,3}
print(s2<s1) # True,说明s2是s1的子集

集合方法

s.add(x):往集合s添加元素
s = set() # 定义一个空的集合
s.add(1) # 往集合s添加元素1
print(s) # {1}

 

s.update(x):也可以添加元素,且参数x可以是列表,元组,字典等
s = set()
s.update([1,2])
print(s) # {1,2}

 

s.remove( x ):将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
s = {1,2,3,4}
s.remove(1)
print(s) # {2, 3, 4}

 

s.discard( x ):也是移除集合中的元素,且如果元素不存在,不会发生错误

s = {1,2,3,4}
s.discard(1)
print(s) # {2, 3, 4}

 

s.pop():会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
s = {1,2,'java','pythonb'}
​
print(s.pop()) 

 

s.clear():清空集合
x in s:判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
set1.difference(set2):返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。返回新的集合。

小案例:返回一个集合,元素包含在集合 x ,但不在集合 y :

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
 
z = x.difference(y) 
 
print(z) # {'cherry', 'banana'}

 

set1.difference_update(set2) 从集合1中移除两个集合中都存在的元素。集合2不变。
s1 = {"apple", "banana", "cherry"}
s2 = {"google", "microsoft", "apple"}
 
s1.difference_update(s2) 
print(s1) # {'cherry', 'banana'}
print(s2) # {'apple', 'microsoft', 'google'}

 

set.intersection(set1, set2 ... etc)方法用于返回两个或多集合中都包含的元素,即交集。返回一个新的集合
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
c = {'java','c','apple'}
 
z = x.intersection(y,c)
print(z) # {'apple'}

 

set.intersection_update(set1, set2 ... etc):求交集

不同于 intersection() 方法,因为 intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不相同的元素。

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
c = {'java','c','apple'}
 
x.intersection_update(y,c)
print(x) # {'apple'}

 

isdisjoint() 方法用于判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "facebook"}
 
z = x.isdisjoint(y) 
 
print(z) #True

 

issubset() 方法用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False。
#判断集合 x 的所有元素是否都包含在集合 y 中:
x = {"a", "b", "c"}
y = {"f", "e", "d", "c", "b", "a"} 
z = x.issubset(y) 
print(z) # True

 

issuperset() 方法用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False
# 判断集合 y 的所有元素是否都包含在集合 x 中:
x = {"f", "e", "d", "c", "b", "a"}
y = {"a", "b", "c"}
z = x.issuperset(y) 
print(z) #True

 

remove() 方法用于移除集合中的指定元素。

不同于 discard() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。

x = {"apple", "banana", "cherry"}
x.remove('apple')
print(x) # {'cherry', 'banana'}

 

symmetric_difference() 方法返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。返回一个新的集合。
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"} 
z = x.symmetric_difference(y) 
print(z) # {'google', 'cherry', 'banana', 'runoob'}

 

symmetric_difference_update() 方法移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
# 在原始集合 x 中移除与 y 集合中的重复元素,并将不重复的元素插入到集合 x 中:
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"} 
x.symmetric_difference_update(y) 
print(x) # {'google', 'cherry', 'banana', 'runoob'}

 


union() 方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。
# 合并两个集合,重复元素只会出现一次:
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"}
 
z = x.union(y) 
 
print(z) # {'cherry', 'runoob', 'google', 'banana', 'apple'}

 

posted on 2020-03-29 16:46  VinceZhang  阅读(137)  评论(0)    收藏  举报

导航