集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...}
或者
set(value)
创建集合
# 创建空集合
set1 = set()
# 创建同一数据类型元素的集合
set2 = {"a", "b", "c", "d", "e", "f"}
# 创建不同数据类型元素的集合
set3 = {"a", 2, 'a', ()}
集合中元素不可重复
set = {1,1,1,3,3,3,2,2,2}
print(set) #1,3,2
集合中元素无序
set = {2,1,5,6,2,8,4}
print(set) #1,5,8,4,2,6
添加集合元素
通过 add() 添加元素
将新元素添加到集合中,如果元素已存在,则不进行任何操作。
set1 = set(("Google", "Runoob", "Taobao"))
set1.add("Facebook")
print(set1) #{'Taobao', 'Facebook', 'Google', 'Runoob'}
通过 update() 添加元素
通过 update() 添加元素时,参数必须是可迭代对象,比如可以是 str、list、tuple、set、dict 等类型,该方法不同于 add() 方法,add() 是把参数当作一个整体添加到集合中,而 update() 则是把参数里的所有元素逐一添加到集合中。
set1 = set(("Google", "Runoob", "Taobao"))
set1.update({1,2})
print(set1) #{1, 2, 'Google', 'Taobao', 'Runoob'}
set1.update([1,4],[5,6])
print(set1) #{1, 2, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
删除集合元素
通过 remove() 删除指定元素,元素不存在则报错
通过 discard() 删除指定元素,元素不存在不会报错
通过 pop() 随机删除元素,会返回删除的元素(如果集合为空时使用 pop() 方法,则会出现报错)
通过 clear() 删除集合所有元素
注意:set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
set1 = set(("Google", "Runoob", "Taobao"))
set1.remove("Taobao")
print(set1) #{'Google', 'Runoob'}
set1.remove("Facebook") # 不存在会发生错误
set1.discard("Facebook") # 不存在不会发生错误
set2 = set1.pop()
set1.clear()
print(set1) #set()
集合运算操作符
运算符 & ,取交集,返回2个集合中相同的元素
运算符 | ,取并集,合并2个集合并去除重复元素
运算符 - ,取差集,从集合中去除元素
运算符 ^ ,取对称差集,返回两个集合中不重复的元素集合
关键字 in
通过关键字 in ,可检查当前集合中是否包含指定元素,返回结果为布尔值 True 或 False。
set1 = {1, 2, 3, 4}
set2 = {1, 5, 6, 4}
print(set1 & set2) #{1, 4}
print(set1 | set2) #{1, 2, 3, 4, 5, 6}
print(set1 - set2) #{2, 3}
print(set2 - set1) #{5, 6}
print(set1 ^ set2) #{2, 3, 5, 6}
print(1 in set1) #True
集合内置方法
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集。 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset() | 判断指定集合是否为该方法参数集合的子集。 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合。 |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |