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)

 

posted @ 2018-11-23 09:06  刘-皇叔  阅读(351)  评论(0编辑  收藏  举报