集合
集合:set 关键字 无序的不重复的
作用:不重复特点
定义集合:s1=set()#空集合只能用括号来定义
set1={1,2,3,4,5,6,3,2}
print (set1)
print(type(set1))
{1, 2, 3, 4, 5, 6}#集合会去除重复部分
<class 'set'>
快速将list去重,也可以通过集合方式。
list1=[2,2,4,12,2,4,1,2,]
set0=set(list1)
list2=list(set0)
print(list2)
结果
[1, 2, 4, 12]
增加元素
add
add可以添加单独的元素
s1=set()
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)
{'小猪佩奇', 'lucy'}
update
可以添加列表、元素等
s1=set()
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)
t1=("aa","bb")
s1.update(t1)#添加一个元组
print(s1)
{'lucy', 'bb', 'aa', '小猪佩奇'}
如果此时用add添加元组,会将元组当成整体,如下:
s1=set()
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)
t1=("aa","bb")
s1.add(t1)
print(s1)
{('aa', 'bb'), '小猪佩奇', 'lucy'}
删除元素
remove
s1=set()
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)
t1=("aa","bb")
s1.update(t1)
print(s1)
s1.remove("aa")
print(s1)
{'小猪佩奇', 'lucy'}
{'小猪佩奇', 'bb', 'aa', 'lucy'}
{'小猪佩奇', 'bb', 'lucy'}
pop
s1=set()
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)
t1=("aa","bb")
s1.update(t1)
print(s1)
s1.pop()
print(s1)
s1.pop()
print(s1)
{'小猪佩奇', 'lucy'}
{'bb', '小猪佩奇', 'lucy', 'aa'}
{'小猪佩奇', 'lucy', 'aa'}
{'lucy', 'aa'}#在集合中每次删除第一个元素
clear
s1=set()
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)
t1=("aa","bb")
s1.update(t1)
print(s1)
s1.clear()
print(s1)
{'小猪佩奇', 'lucy'}
{'小猪佩奇', 'bb', 'lucy', 'aa'}
set()
discard
在移除不存在的元素的时候不会报错,其他跟remove类似
其他符号操作
in
import random
set1=set()
for i in range(10):
ran =random.randint(1,20)
set1.add(ran)
print(set1)
print(0 in set1)
{3, 4, 5, 6, 7, 12, 15, 20}
False
等号==
判断两个集合是否相等
set1={1,2,3,4,5}
set2={2,3,4,5}
print(set1==set2)
False
交集&
&
set1={1,2,3,4,5}
set2={2,3,4,5}
print(set1&set2)
{2, 3, 4, 5}
intersection
set1={1,2,3,4,5}
set2={2,3,4,5}
set3=set2.intersection(set1)
print(set3)
差集
减号
set1={1,2,3,4,5}
set2={2,3,4,5}
print(set1-set2)#表示set1里出去set2剩余部分
{1}
difference
set1={1,2,3,4,5}
set2={2,3,4,5}
set3=set2.difference(set1)
print(set1-set2)
{1}
并集
union
set1={1,2,3,4,5}
set2={2,3,4,5,7}
set3=set2.union(set1)
print(set3)
{1, 2, 3, 4, 5, 7}
|
set1={1,2,3,4,5}
set2={2,3,4,5,7}
set3=set1|set2
print(set3)
{1, 2, 3, 4, 5, 7}