集合是盛放多个数据的一种类型。
集合中的元素是无序的,唯一的、不可改变类型,可以使用大括号 { } 或者 set() 函数创建集合
格式:
(1). 变量名={元素1,元素2,元素3,…}
(2). 变量名=set(序列) 例如 变量名=set(元组,自动,字符串)
注意事项:
1.创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
2.集合中的元素必须是不可修改类型
集合的基本操作
(1) .添加操作
语法格式如下:s.add( x )
实例:
set1 = set(("B", "A", "C"))
set1.add("DDDDDDDD")
print(set1)
运行结果:
{'B', 'A', 'C', 'DDDDDDDD'}
还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:s.update( x )
x 可以有多个,用逗号分开
实例:
# 例1
set1 = set(("B", "A", "C"))
set1.update({1,2})
print(set1)
################################
# 例2
set1 = set(("B", "A", "C"))
set1.update([1,2],[2,1])
print(set1)
运行结果:
# 例1运行结果
{1, 2, 'B', 'A', 'C'}
###############################
# 例2运行结果
{1, 2, 'B', 'A', 'C'}
#因为集合中的元素是唯一的,1、2只打印一次
(2) .删除操作
pop、remove、clear、del
set2 = {'哈哈','嘻嘻','嘿嘿'}
# 1.pop() 随机弹出一个
set2.pop()
print(set2)
# 2.remove()
set2.remove('哈哈')
print(set2)
# 3.clear
set2.clear()
print(set2)
# 4.del
del set2
print(set2)
(3) .遍历集合
set3 = {1,2,3,4,5}
for i in set3:
print(i)
集合数学运算
1.交集(& 或者 intersection) 取公共部分
2.并集 (| 或者 union) 取去除重复部分内容
3.差集 ( 或者 difference)取set1或者set2中除去公共部分的内容
4.反交集 (^ 或者 symmetric_difference):除了交集的部分
5.子集 (< 或者 issubset)
6.超集 (> 或者 issuperset)
集合内置方法完整列表
方法 | 描述 |
---|---|
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False |
issubset() | 判断指定集合是否为该方法参数集合的子集 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合 |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |
集合应用场景
由于元素在集合中只能存储一次,集合 (set) 可以用来把重复项从其他数据类型中过滤掉。 把其他类型转换为一个集合 (set) ,然后再转换回来即可。
在处理较大的数据集合的时候(例如,数据库查询结果) ,两个集合的交集包含了两个领域中共有的对象,并集包含了两个集合中的所有项目。