1.作用
1.1:关系运算
1.2:去重
l=['a','b',1,'a','a'] print(list(set(l)))#无法保证顺序 # 针对不可变类型,并且保证顺序则需要我们自己写代码实现,例如 l=[ {'name':'lili','age':18,'sex':'male'}, {'name':'jack','age':73,'sex':'male'}, {'name':'tom','age':20,'sex':'female'}, {'name':'lili','age':18,'sex':'male'}, {'name':'lili','age':18,'sex':'male'}, ] new_l=[] for dic in l: if dic not in new_l: new_l.append(dic) print(new_l) # 结果:既去除了重复,又保证了顺序,而且是针对不可变类型的去重
2.定义:在{}内用逗号分隔开多个元素,多个元素满足以下三个条件
集合内元素必须是不可变类型
集合内元素无序
集合内元素没有重复
s = {1,2} #s = set({1,2})
了解知识点:{}默认定义是空字典,想要定义空集合要用set=({})
3.类型转换
set({1, 2, 3})
res = set('hsdaasd')
print(res)
print(set([1,1,1,1,1]))
print(set([1,1,1,[11,22]]))#报错
print(set({'k1':1,'k2':2}))#取的是key
4.内置方法
frineds1 = {'a','b','c'} friends2 = {'b','d','e'} # 4.1 取交集:两者共同的好友 print(friends1 & friends2) print(friends1.intersection(friends2)) # 4.2 取并集/合集:两者所有的好友 print(friends1 | friends2) print(friends1.union(friends2)) # 4.3 取差集:取friends1独有的好友 print(friends1 - friends2) print(friends1.difference(friends2)) # 取friends2独有的好友 print(friends2 - friends1) print(friends2.difference(friends1)) # 4.4 对称差集: 求两个用户独有的好友们(即去掉共有的好友) print(friends1 ^ friends2) print(friends1.symmetric_difference(friends2)) # 4.5 父子集:包含的关系 s1={1,2,3} s2={1,2,4} # 不存在包含关系,下面比较均为False print(s1 > s2) print(s1 < s2) # s1={1,2,3} # s2={1,2} print(s1 > s2) # 当s1大于或等于s2时,才能说是s1是s2他爹 print(s1.issuperset(s2)) #s1 >s2 print(s2.issubset(s1)) # s2 < s1 =>True s1={1,2,3} s2={1,2,3} print(s1 == s2) # s1与s2互为父子 print(s1.issuperset(s2)) print(s2.issuperset(s1))
其他内置方法
# 长度len # 成员运算 in 和not in # 循环 s={1,2,3} # 需要掌握的内置方法1:discard s.discard(4) # 删除元素不存在do nothing print(s) s.remove(4) # 删除元素不存在则报错 # 需要掌握的内置方法2:update s.update({1,3,5}) print(s) # 需要掌握的内置方法3:pop res=s.pop() #括号里不能填值 随机删除 print(res) # 需要掌握的内置方法4:add s.add(4) print(s)