集合操作

Posted 七天&七天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合操作相关的知识,希望对你有一定的参考价值。

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  去重,把一个列表变成集合,就自动去重了

  关系测试,测试两组数据之前的交集、差集、并集等关系

常用操作

list_1 = [1,2,3,4,5,6,7,4,5,6,7]
list_1 = set(list_1) #把列表转换成集合,重复的内容会合并
print(list_1,type(list_1))
{1, 2, 3, 4, 5, 6, 7} <class set>

基本操作

#交集
list_1 = set([1,2,3,4,5,6,7]) #创建一个集合
list_2 = set([3,4,5,100])
print(list_1.intersection(list_2)) #打印list_1和list_2的交集
print(list_1 & list_2) #简写
{3, 4, 5}

#并集
print(list_1.union(list_2)) #将2个集合合并,并去重
print(list_1 | list_2) #简写
{1, 2, 3, 4, 5, 6, 7, 100}

#差集
print(list_1.difference(list_2)) #将list_1中存在,list_2中没有的内容打印
print(list_1 - list_2) #简写
{1, 2, 6, 7}

#对称差集
print(list_1.symmetric_difference(list_2)) #打印list_1和list_2中相互没有的内容
print(list_1 ^ list_2) #简写
{1, 2, 100, 6, 7}

#子集
list_1 = set([1,2,3,4,5,6,7])
list_3 = set([1,2,3])
print(list_3.issubset(list_1)) #查看list_3是不是list_1的子集,因为list_3的内容list_1中全都有,所以返回True
True

#父集
print(list_1.issuperset(list_3)) #查看list_1是不是list_3的父集
True

#判断是否有交集
print(list_1.isdisjoint(list_2))
print(list_1 >= list_2) #简写 False

其他操作

#添加
list_1 = set([1,2,3,4,5,6,7])
list_1.add(99) #添加一项
list_1.update([123,456]) #添加多项
print(list_1) 
{1, 2, 3, 4, 5, 6, 7, 99, 456, 123}

#删除
list_1.remove(1) #删除一项
print(list_1)
{2, 3, 4, 5, 6, 7}
list_1.pop() #随机删一项
print(list_1.discard(9)) #删除一项,集合中没有也不会报错

print(len(list_1)) #打印集合的长度
7

#判断1是否在list_1里
if 1 in list_1:
    print(True)
else:
    print(False)

#判断1000是不是不在list_1里
if 1000 not in list_1:
    print(True)
else:
    print(False)

#浅copy
list4 = list_1.copy()

 

以上是关于集合操作的主要内容,如果未能解决你的问题,请参考以下文章

金蝶handler中 collection 代码片段理解

Alfred常见使用

比较 C# 中的字符串片段并从集合中删除项目

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程