集合是盛放多个数据的一种类型。
集合中的元素是无序的,唯一的、不可改变类型。可以使用大括号 { } 或者 set() 函数创建集合,
格式:
(1). 变量名={元素1,元素2,元素3,…}
(2). 变量名=set(序列) 例如 变量名=set(元组,自动,字符串)
举个例子
a=(4,5,3,65,322,76,78,9,65,4,433)
b=set(a)
print(b)#输出是集合,可以去重
a={4,5,6,7,5,5,5,5,5,5,53,3,3,3,2,2,2,2,4,4,4}
b=set(a)#集合是无序
print(b)
a='ddfdssffggeeeww'
b=set(a)
print(b)
a=[3,4,4,4,42,2,2,5,5,5,1,1,1,6,66]
b=set(a)
print(b)
运行结果
{65, 322, 3, 4, 5, 9, 76, 78, 433}
{2, 3, 4, 5, 6, 7, 53}
{‘w’, ‘d’, ‘g’, ‘f’, ‘s’, ‘e’}
{1, 2, 3, 4, 5, 6, 66, 42}
集合的操作
1.增加操作
a={1,2,3}
a.update('sdt')#增加的是集合
print(a)
运行结果:
{1, 2, 3, ‘d’, ‘t’, ‘s’}
2.删除操作
a={0,3,4,56,}
b=a.pop()#随机删除一个
print(b)
a={1,2,34,0,5,5}
a.discard(5) #删除指定的数,不报错
print(a)
a.remove(1)
print(a)#删除指定值,报错
集合数学运算
1.交集(& 或者 intersection) 取公共部分
a={1,2,3}
b={4,5,6,1,2}
c=b.intersection(a)#求两个a与b的交集
print(c)
2.并集。(| 或者 union) 取去除重复部分内容
a={1,2,3}
b={4,5,6}
c=b.union(a)#把b合并到a里面,只能用这种格式
print(c)
print(a)
print(b)
3.差集。(- 或者 difference)取set1或者set2中除去公共部分的内容
a={1,2,3}
b={4,5,6,1,2}
c=a.difference(b)#求两个a与b的差集:a不同于b的元素,如果a完全不同于b输出整个集合
print(c)
4.反交集。(^ 或者 symmetric_difference)
a={1,2,3,8,0,3}
b={4,5,6,1,2}
c=a.symmetric_difference(b)#求两个a与b的均不相同的元素
print(c)
5.子集。(< 或者 issubset)
a={1,2,3}
b={4,5,6,7,9}
c={1,2,3,4}
print(c.issuperset(a)) # c是a的父集 返回 ture
print(a.issuperset(b)) # a是不是b的父集 返回 false
print(a.issubset(c))#a是c的子集 返回 ture
6.超集。(> 或者 issuperset)
a={1,2,3}
b={4,5,6,7,9}
c={1,2}
print(a.isdisjoint(b)) #b和a没有交集
print(a.isdisjoint(c)) #a和c没有交集