定义
几个类似于列表,也是可以存一堆数据
1.里面的元素不可变,代表你不能存一个list、dict 在集合里,字符串、数字、元组等不可变类型可以存
2.天生去重,在集合里没办法存重复的元素
3.无序,不像列表一样通过索引来标记在列表中的位置 ,元素是无序的,集合中的元素没有先后之分,如集合{3,4,5}和{3,5,4}算作同一个集合
主要用作去重,关系运算
语法
创建集合
>>> a = {1,2,3,4,2,'alex',3,'rain','alex'}
>>> a
{1, 2, 3, 4, 'rain', 'alex'}
1.给列表去重
给列表去重最快的方法,就是把它转成集合,去重完,再转回列表
>>> b = [1, 2, 3, 'nis',3,'chaopeng', 'chaoyang']
>>> set(b)
{1, 2, 3, 'nis', 'chaopeng', 'chaoyang'}
>>> list(set(b))
[1, 2, 3, 'nis', 'chaopeng', 'chaoyang']
>>> b = list(set(b))
>>> b
[1, 2, 3, 'nis', 'chaopeng', 'chaoyang']
2.增删改查
2.1 增
>>> a = {1, 2, 3, 4, 'nis', 'rain'}
>>> a.add("朝阳")
>>> a
{1, 2, 3, 4, 'nis', 'rain', '朝阳'}
2.2 删
discardd #删除存在值
>>> a
{1, 2, 3, 4, 'nis', 'rain', '朝阳'}
>>> a.discard("rain") #删除
>>> a
{1, 2, 3, 4, 'nis', '朝阳'}
>>> a.discard("rains") #删除不存在的值,不返回
>>> a
{1, 2, 3, 4, 'nis', '朝阳'}
pop #随机删除
>>> a.pop()
1
>>> a.pop()
2
remove #删除
>>> a.remove(4)
>>> a
{3, 'nis', '朝阳'}
查
>>> a
{3, 'nis', '朝阳'}
>>> 'nis' in a
True
3. 关系运算
>>> a = {"佩奇","老","海峰","马JJ","老村长","黑","Alex"}
>>> b = {"Alex","Egon","Rain","马JJ","Nick","Jack"}
>>> a & b #交集
{'马JJ', 'Alex'}
>>> a | b #并集
{'Rain', '佩奇', '老', 'Alex', 'Egon', 'Nick', '马JJ', 'Jack', '海峰', '老村长', '黑'}
>>> a - b # a和b的差集
{'佩奇', '老', '海峰', '老村长', '黑'}
>>> b - a #b和a的差集
{'Rain', 'Egon', 'Jack', 'Nick'}
>>> a ^ b #对称差集 取出两个集合中都有的
{'Rain', 'Nick', 'Jack', '黑', '佩奇', '老', 'Egon', '海峰', '老村长'}
两个集合之间一般有(相交,包含,不相交)
>>> a.isdisjoint(b) #判断2个集合是不是相交
False
>>> a.issubset(b) #判断a是不是b的子集
False
>>> a.issuperset(b) #判断a是不是b的父集
False