python 集合set
目录
集合
集合数学
集合方法
案例
集合 set
1.用途:运算关系 去重
2.定义方式:在{}内用逗号分隔各个元素
a = {1,1.1,'Jason',(1,2)}
# a = ser(1,1.1,'Jason',(1,2))
print(a,type(a))
# {'Jason', 1, (1, 2), 1.1} <class 'set'>
3.集合的三大特性
(1)每个值都是不可变的
(2)元素不能重复
a = {1,1,22,22,3,6,6}
print(a)
# {1, 3, 22, 6}
(3)集合内的元素是无序的
a = {1,'a',2,'s'}
# a[0] # 报错
集合数学
1. 两个集合中相同的数,合集
2. 并集
3. 差集
4. 交集
5. 相等
6. 子集
# a = {1,2,3,4,5}
# b = {3,4,5,6,7}
# # 提取a,b中相同的数字.集合
# print(a & b) # {3, 4, 5}
# print(a.intersection(b))
#
# # 提取a和b的并集
# print(a | b) # {1, 2, 3, 4, 5, 6, 7}
# print(a.union(b))
#
# # a 和 b的差集
# print(a - b) # 1, 2}
# print(a.difference(b))
# print(b - a) # {6, 7}
# print(b.difference(a))
#
# # a和b都有 交集
# print(a ^ b) # {1, 2, 6, 7}
# print(a.symmetric_difference((b)))
# 是否相等
# a = {1,2,3,4,5}
# b = {1,2,3,5,4}
# print(a == b) # True
# 无序的
# 子集
# a = {1,2,3,4}
# b = {1,2,3,5,4}
# print(b >= a)
内置方法
1. update
2. add
3. pop
4. remove
# 1.update
# a = {1,2,3,4}
# a.update({3,4,5})
# print(a)
# 2.add
# a = {1,2,3,4}
# a.add(5)
# print(a)
# 3.pop
# a ={1,2,3,4}
# res = a.pop()
# print(a)
# print(res)
# 4.remove
# a = {1,2,3,4}
# res = a.remove(3)
# print(a)
# print(res) # None
# 删除的元素不存在不报错
# 5.difference_update() 和difference相同
# a = {1,2,3,4}
# a1 = {1,2}
# a.difference_update(a1)
# print(a)
# a.difference(a1)
# print(a) # {3, 4}
# 6.discard()
# a = {1,2,3,4}
# res = a.discard(3)
# # print(res) # None
# print(a) # {1, 2, 4}
# 删除的元素不存在不报错
# 7.isdisjoint()
# a = {1,2,3}
# a1 = {1,2,4}
# print(a.isdisjoint(a1))
# 两个集合没有交集这为真
总结
1,存多个值
2,无序
3,可变类型
案例
1. 集合去重
局限性
1 无法保证原数据的顺序
2 当一个数据包含多个值,每个值为不可变类型才能用集合去重
# names ={'alex','egon','alex','alex','egon','lxx'}
# s = set(names)
# print(s)
# a = list(s)
# print(a)
# students = [
# {'name':'egon','age':18},
# {'name':'jason','age':19},
# {'name':'oldboy','age':20},
# {'name':'egon','age':18},
# {'name':'jason','age':19},
# ]
# # set(students) # 报错
#
# a = []
# for info in students:
# if info not in a:
# a.append(info)
# # print(a)
# students = a
# print(students)

浙公网安备 33010602011771号