集合(set):集合是无序的,集合中的元素是唯一的,不能出现可变的数据类型
集合名={元素1,元素2,.....}
集合名=set()
,但是不能像列表或者元组那样集合名={}
去创建,因为{}
代表的的是字典
my_set={1,2,3}
my_set1=set()
my_set2={}
print(type(my_set))
print(type(my_set1))
print(type(my_set2))
所以我们千万得之一空集合的命名,不能直接去写{}
否则会成字典
添加元素主要有两种写法add
和update
集合名.add(x)
my_set={1,2,3}
my_set.add("您好")
print(my_set)
my_set={1,2,3}
my_set.add("您好","世界")
print(my_set)
集合名.update(x)
,添加的元素可以为列表,元组,字典等…my_set={1,2,3}
"""列表"""
my_set.update([4,5])
print(my_set)
"""字典"""
my_set.update({5:6,8:9})
print(my_set)
"""元组"""
my_set.update((10,11,12))
print(my_set)
删除元素主要有pop
、remove
、discard
三种方法
集合名.pop()
:随机删除一个元素my_set={1,2,3,4,5,6,7,8,9}
print(my_set.pop())
print(my_set)
集合名.remove()
:有则删,无则报错my_set={1,2,3,4,5,6,7,8,9}
my_set.remove(5)
print(my_set)
my_set.remove(10)
print(my_set)
我们清楚的看到没有 10 这个元素则报错了,因为存在 5 所以就删了
集合名.discard()
:有则删,无则不变化my_set={1,2,3,4,5,6,7,8,9}
my_set.discard(10)
print(my_set)
my_set.discard(5)
print(my_set)
我们可以看到没有 10 这个元素没有变化,存在 5 这个元素所以就删除了
清空元素一般我们用clear 格式为:集合名.clear()
my_set={1,2,3,4,5,6,7,8,9}
my_set.clear()
print(my_set)
计算元素的个数,一般我们用len 格式为:len(集合名)
my_set={1,2,3,4,5,6,7,8,9}
print(len(my_set))
在前面的几篇博客中,我们也提到了怎么查看元素是否存在,一般会用到 in
my_set={1,2,3,4,5,6,7,8,9}
if 5 in my_set:
print("我在")
if 10 not in my_set:
print("不好意思,我没在")
所谓交集,就是集合中存在相同的元素,然后交集出的是相同的元素,会用到 “&” 一般格式:集合1&集合2
my_set={1,2,3,4,5,6,7,8,9}
my_set1={1,2,3,3,5,6,9,8,9}
my_set2={1,4,3,3,5,6,9,8,10}
#交集
print(my_set&my_set1&my_set2)
所谓交集,就是集合中存在的所有元素,会用到 “|” 一般格式:集合1|集合2
my_set={1,2,3,4,5,6,7,8,9}
my_set1={1,2,3,5,6,9,8}
my_set2={1,4,3,5,6,9,8,10}
#并集
print(my_set1|my_set)
差集:就是返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中,一般格式:集合名1.difference(集合名2)
my_set={1,2,3,4,5,6,7,8,9}
my_set1={1,2,3,5,6,9,8}
print(my_set.difference(my_set1))
集合一般用来去重,如果存在相同元素,一般用列表的做法:
my_list=[1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9]
my_list1=[]
for i in my_list:
if i not in my_list1:
my_list1.append(i)
print(my_list1)
用集合去重
my_list=[1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9]
print(set(my_list))