py语法基础014_集合操作介绍

# encoding=utf-8
"""

三、集合操作
1、集合(set)

集合是无序、可变、元素不可重复的序列
集合底层实现是字典,只有字典的键对象,不可重复且唯一

(1)集合是盛放多个数据的一种类型,是基础数据类型之一
(2)用于存储一组无序的,唯一的、不重复的,不可修改类型的数据
2、创建
(1)创建空集合:集合名=set()
(2)创建非空集合:集合名={元素1,元素2...} | 集合名=set(元素1,元素2...)
3、特点
(1)集合是无序的
(2)集合中的元素是不重复的,唯一的
(3)集合中存储的数据必须是不可变的数据类型
(4)集合是可变的数据类型
4、增加操作
(1)集合名.add(数据):添加不可变类型数据,若添加可变类型数据会报错
(2)集合名.update(可迭代数据):将可迭代对象中和集合中不重复的元素添加到集合中
5、删除操作
(1)集合名.pop():将集合中的元素随机删除,返回删除的值
(2)集合名.remove(元素):删除指定的元素,元素不存在会报错
(3)集合名.discard(元素):删除指定的元素,元素不存在会报错
(4)集合名.clear():将集合清空,剩余空集合
(5)del 集合名:删除整个集合变量
6、应用场景:去重
(1)元素在集合中只能存储一次,可以用来把重复项从其他数据类型中过滤掉,只要把其他类型转换为一个集合(set),再转换回来即可去重
(2)在处理较大的数据集合的时候,两个集合的交集包含了两个领域中共有的对象,并集包含了两个集合中的所有项目
7、数学计算
(1)集合1.difference(集合2):获取两个集合的差集 == 集合1-集合2-->第一个集合有,第二个集合没有
(2)集合1.difference_update(集合2):获取两个集合的差集并将结果更新到前面集合中 == 集合1-=集合2
(3)集合1.symmetric_difference(集合2):获取两个集合共同的差集/反交集 == 集合1^集合2-->取非公共部分
(4)集合1.symmetric_difference_update(集合2):获取两个集合共同的差集并更新到前面集合中 == 集合1^=集合2
(5)集合1.isdisjoint(集合2):判断两个集合是否没有交集
(6)集合1.intersection(集合2):获取两个集合的交集 == 集合1&集合2-->取公共部分
(7)集合1.intersection_update(集合2):获取两个集合的交集并将结果更新到前面集合中 == 集合1&集合2
(8)集合1.union(集合2):获取两个集合的并集 == 集合1|集合2-->取所有部分,不包括重复数据
(9)集合1.update(集合2):获取两个集合的并集,并将数据更新到前面集合中 == 集合1|=集合2
(10)集合1.issubset(集合2):子集-判断前面集合中的数据是不是包含在后面集合中 == 集合1<集合2-->判断集合是不是另一集合的子集
(11)集合1.issuperset(集合2):超集-判断后面集合中的数据是不是包含在前面集合中 == 集合1>集合2

"""



set1=set()
print("声明空集合:",set1)
# 普通集合
set2 = {1,2,3,4,5,6,7,8,9,1,2,3,1,2,3,1,2,3}
print("集合是可变类型数据,可以存放不可重复的、无序的、不可变类型数据的多个数据")
set3 = set(["a","b","c","d","e"])
print("声明非空集合:",set3)

print("--------单个集合增加数据--------")
set4 = set3.copy()
print("copy()复制集合:",set4)
# 增加操作
st1 = {"1","2","3","3","4","5","6"}
# add()添加不可变类型数据,若添加可变类型数据会报错
print("add()添加不可变类型数据,若添加可变类型数据会报错")
st1.add(1)
print("添加数据:",st1)

# update将后面的集合添加到前面集合中
print("update将后面的集合添加到前面集合中")
st2 = {"9","8","7"}
st1.update(st2)
print("添加集合到前面集合中:",st1)

# 删除操作
print("--------单个集合删除数据--------")
# pop()将集合中的元素随机删除,返回删除的值
print("pop()将集合中的元素随机删除,返回删除的值")
print("随机删除元素:",st1.pop(),"删除元素后的结合:",st1)

# remove(元素)删除指定的元素,元素不存在会报错
print("remove(object)删除指定的元素,元素不存在会报错")
st1.remove("3")
print("删除指定的元素3",st1)
# st1.remove("X")
# print("remove指定删除一个数据(不存在):",st1)

# discard(元素)删除指定的元素,元素不存在会报错
print("discard(object)删除指定的元素,元素不存在不会报错")
st1.discard("3")
print("删除指定的元素3:",st1)

# clear()将集合清空,剩余空集合
st1.clear()
print("清空集合:",st1)

print("遍历所有的集合:",end=" ")
for i in st1:
    print(i,end=" ")

print("~~~~~~~~~~~~~~~~获取差集~~~~~~~~~~~~~~~")
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}
print("集合s1:",s1,"  |  集合s2:",s2)
print("difference:获取两个集合的差集",s1.difference(s2))
print("s1-s2:获取两个集合的差集",s1-s2)

print("~~~~~~~~~~~~~~更新差集~~~~~~~~~~~~~~~~")
s1.difference_update(s2)
print("difference_update获取两个集合的差集并将结果更新到前面集合中",s1)
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}
s1-=s2
print("s1-=s2获取两个集合的差集并将结果更新到前面集合中",s1)

print("~~~~~~~~~~~~~~获取共同差集~~~~~~~~~~~~~")
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}
print("symmetric_difference获取两个集合共同的差集",s1.symmetric_difference(s2))
print("s1^s2获取两个集合共同的差集",s1^s2)

print("~~~~~~~~~~~~~更新共同差集~~~~~~~~~~~~~")
s1.symmetric_difference_update(s2)
print("symmetric_difference_update获取两个集合共同的差集并更新到前面集合中",s1)
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}
s1^=s2
print("s1^=s2获取两个集合共同的差集并更新到前面集合中",s1)

print("~~~~~~~~~~~~~~~~判断交集~~~~~~~~~~~~~~~")
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}
print("isdisjoint判断两个集合是否没有交集",s1.isdisjoint(s2))

print("~~~~~~~~~~~~~~~~获取交集~~~~~~~~~~~~~~~")
print("intersection获取两个集合的交集",s1.intersection(s2))
print("s1&s2获取两个集合的交集",s1&s2)

print("~~~~~~~~~~~~~~~~更新交集~~~~~~~~~~~~~~~")
s1.intersection_update(s2)
print("intersection_update获取两个集合的交集并将结果更新到前面集合中",s1)
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}
s1&=s2
print("s1&=s2获取两个集合的交集并将结果更新到前面集合中",s1)

print("~~~~~~~~~~~~~~~~获取并集~~~~~~~~~~~~~~~")
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}
print("union获取两个集合的并集",s1.union(s2))
print("s1|s2获取两个集合的并集",s1|s2)

print("~~~~~~~~~~~~~~~~更新并集~~~~~~~~~~~~~~~")
s1.update(s2)
print("update获取两个集合的并集,并将数据更新到前面集合中",s1)
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}
s1|=s2
print("s1|=s2获取两个集合的并集,并将数据更新到前面集合中",s1)

print("~~~~~~~~~~~~~~~~后包含前~~~~~~~~~~~~~~~")
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}
print("issubset判断前面集合中的数据是不是包含在后面集合中",s1.issubset(s2))
print("s1<s2判断前面集合中的数据是不是包含在后面集合中",s1<s2)

print("~~~~~~~~~~~~~~~~前包含后~~~~~~~~~~~~~~~")
print("issuperset判断后面集合中的数据是不是包含在前面集合中",s1.issuperset(s2))
print("s1>s2判断后面集合中的数据是不是包含在前面集合中",s1>s2)

# del 删除集合变量
del st1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值