集合的声明
集合是一个无序的不重复元素序列。底层为哈希表。哈希表(无序,不重复)
声明
set1 = set() # 声明一个空集合
set2 = {"京A0988","京B3467","京F8212"} # 声明一个非空集合
注意:{} 无法声明空集合,为空字典!
集合的内置函数
集合不支持索引下标及切片访问!
set2 = {"京A0988","京B3467","京F8212"}
# 增
>>add() # 将元素添加到集合中,如果元素已存在,则不进行任何操作。
set2.appexd("京B8B212")
res: {"京A0988","京B8B212","京B3467","京F8212"}
>>update() # 参数为可迭代对象(列表,元组,集合,字典等),将某一个对象扩展到原来的集合中去。
set2.update([1,2],[3,4]) # 参数可以是多个
res:[1,2,3,4,"京A0988","京B3467","京F8212"]
# 删
>>remove() # 删除指定元素 若没有 则报错
set2.remove("京A0988")
res:{"京B3467","京F8212"}
>>discard() # 删除指定元素 如果没有元素则什么都不做
set2.discard("京A0988")
res:{"京B3467","京F8212"}
>>pop() # 随机删除一个元素
set2.pop()
res:{"京A0988","京F8212"}
>>clear() # 清空集合
set2.clear()
res:{}
>>del # 清空集合并回收地址
del set2
# 改
不支持
# 查
不支持
支持的符号
3 in {1, 2, 3} True 判断元素是否在集合中
for x in {1,2,3}:print(x) > 迭代
is 判断两个集合是否id相等
集合的运算
# 交集
& intersection() intersection_update() (运算均有update这个方法,做完运算在原集合上更新)
res = set1 & set2
res = set1.intersection(set2)
# 并集
|
res = set1 | set2
res = set1.union(set2)
# 差集
-
res = set1 - set2 # 前面集合有后面结合没有
res = set1.difference(set2)
#对称差集
^
res = set1 ^ set2 # 并集减去交集
res = set1.symmetric_difference(set2)