python3 基本数据类型:集合
创建集合
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
#集合中的元素不可以重复
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) #{'orange', 'apple', 'pear', 'banana'}
#创建一个空集合
s = set()
print(type(s)) #<class 'set'>
集合间的运算
a = set('abcdmlx')
b = set('almz')
#集合a中包含,集合b中不包含的元素
print(a - b)
#集合a跟b的交集
print(a & b)
#集合a跟b的并集
print(a | b)
#不同时包含在两个集合的元素
print(a ^ b)
集合内置方法
- 为集合添加元素:add()
- 移除集合中的所有元素:clear()
- 拷贝一个集合:copy()
- 返回多个集合的差集:difference()
A = {11,22,33}
B = {33,44,55}
#移除集合A中同样也存在于集合B中的元素
S = A.difference(B)
print(S) #{11, 22}
- 移除集合中的元素,该元素在指定的集合也存在:difference_update()
A = {11,22,33}
B = {33,44,55}
# 表示集合A中存在,但是在集合B中不存在的元素,并更新A集合,没有返回值
A.difference_update(B)
print(A) #{11, 22}
print(B) #{33, 44, 55}
- 删除集合中指定的元素:discard(),remove()
fruits = {"apple", "banana", "cherry"}
fruits.discard("banana")
print(fruits) #{'apple', 'cherry'}
A = {11, 55, 22}
A.remove(55)
print(A) #{11, 22}
- 返回集合的交集:intersection()
- 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False:isdisjoint()
- 随机移除元素:pop()
- 返回两个集合中不重复的元素集合:symmetric_difference()
A = {11,22,33,44}
B = {11,22,55,66}
print(A.symmetric_difference(B)) #{33, 66, 44, 55}
- 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中:symmetric_difference_update()
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"}
x.symmetric_difference_update(y)
print(x) #{'banana', 'runoob', 'google', 'cherry'}
- 返回两个集合的并集:union()
- 给集合添加元素:update()
#使用字典更新
s = set(('a', 'cc', 'f'))
dict_1 = {'name': 'bb', 'age': 'cc', 'f': 11}
s.update(dict_1)
print(s) #{'name', 'f', 'a', 'age', 'cc'}
#使用元组更新
s = set(('a', 'cc', 'f'))
tup_1 = (1, 2,)
s.update(tup_1)
print(s) #{'cc', 1, 'f', 'a', 2}
#使用列表更新
s = set(('a', 'cc', 'f'))
list_1 = ['w', 'a', 1]
s.update(list_1)
print(s) #{'cc', 1, 'f', 'a', 'w'}
#使用集合更新
se = {11, 22, 33}
be = {22,44,55}
se.update(be) #{33, 22, 55, 11, 44}
print(se)