集合操作
Posted brace2011
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合操作相关的知识,希望对你有一定的参考价值。
1. 集合操作:
集合也是无序的
s = set([1,2,3,4,5,6])
print(s)
输出:
{1, 2, 3, 4, 5, 6}
1.1 去重功能:
list1=[1,2,3,4,5,6,1,2,5,6]
list1=set(list1)
print(list1) #输出:{1, 2, 3, 4, 5, 6}
1.2 关系测试:
list1=set([1,2,13,4,5,6,1,2,15,6])
list2=set([11,2,3,24,15,6,1,12,5,6])
list3 = set([1,2,5,6])
list4 = set([25,26])
交集:
print(list1.intersection(list2)) #输出:{1, 2, 5, 6, 15}
并集:
print(list1.union(list2)) #输出:{1, 2, 3, 4, 5, 6, 11, 12, 13, 15, 24}
差集:在其一不再其二
print(list1.difference(list2)) #输出:{4, 13}
判断是否是子集
print(list1.issubset(list2)) #输出:False
print(list3.issubset(list1)) #输出:True
判断是否是父集
print(list1.issuperset(list2)) #输出:False
print(list1.issuperset(list3)) #输出:True
判断是否不存在交集:
print(list1.isdisjoint(list3)) #输出:False 存在交集
print(list1.isdisjoint(list4)) #输出:True
对称差集:(在2个都没有的元素取出,及并集去掉交集)
print(list1.symmetric_difference(list2)) #输出:{3, 4, 11, 12, 13, 24}
1.3 运算来表示关系测试:
list1=set([1,2,13,4,5,6,1,2,15,6])
list2=set([11,2,3,24,15,6,1,12,5,6])
list3 = set([1,2,5,6])
list4 = set([25,26])
交集:
print(list1 & list2)
并集:
print(list1 | list2)
差集:
print(list1 - list2)
对称差集:
print(list1 ^ list2)
输出:
{1, 2, 5, 6, 15}
{1, 2, 3, 4, 5, 6, 11, 12, 13, 15, 24}
{4, 13}
{3, 4, 11, 12, 13, 24}
1.3 集合的增删改查:
添加:
list1=set([1,2,13,4,5,6,1,2,15,6])
list1.add("xx") # 添加1项
list1.update([90,67,45]) # 添加多项
集合也是无序的
s = set([1,2,3,4,5,6])
print(s)
输出:
{1, 2, 3, 4, 5, 6}
1.1 去重功能:
list1=[1,2,3,4,5,6,1,2,5,6]
list1=set(list1)
print(list1) #输出:{1, 2, 3, 4, 5, 6}
1.2 关系测试:
list1=set([1,2,13,4,5,6,1,2,15,6])
list2=set([11,2,3,24,15,6,1,12,5,6])
list3 = set([1,2,5,6])
list4 = set([25,26])
交集:
print(list1.intersection(list2)) #输出:{1, 2, 5, 6, 15}
并集:
print(list1.union(list2)) #输出:{1, 2, 3, 4, 5, 6, 11, 12, 13, 15, 24}
差集:在其一不再其二
print(list1.difference(list2)) #输出:{4, 13}
判断是否是子集
print(list1.issubset(list2)) #输出:False
print(list3.issubset(list1)) #输出:True
判断是否是父集
print(list1.issuperset(list2)) #输出:False
print(list1.issuperset(list3)) #输出:True
判断是否不存在交集:
print(list1.isdisjoint(list3)) #输出:False 存在交集
print(list1.isdisjoint(list4)) #输出:True
对称差集:(在2个都没有的元素取出,及并集去掉交集)
print(list1.symmetric_difference(list2)) #输出:{3, 4, 11, 12, 13, 24}
1.3 运算来表示关系测试:
list1=set([1,2,13,4,5,6,1,2,15,6])
list2=set([11,2,3,24,15,6,1,12,5,6])
list3 = set([1,2,5,6])
list4 = set([25,26])
交集:
print(list1 & list2)
并集:
print(list1 | list2)
差集:
print(list1 - list2)
对称差集:
print(list1 ^ list2)
输出:
{1, 2, 5, 6, 15}
{1, 2, 3, 4, 5, 6, 11, 12, 13, 15, 24}
{4, 13}
{3, 4, 11, 12, 13, 24}
1.3 集合的增删改查:
添加:
list1=set([1,2,13,4,5,6,1,2,15,6])
list1.add("xx") # 添加1项
list1.update([90,67,45]) # 添加多项
print(list1) #输出:{1, 2, ‘xx‘, 4, 5, 6, 67, 13, 45, 15, 90}
删除(集合天生就是去重的):
t.remove(90) #如果删除不存在的数据会报错
t.discard(90) #如果删除不存在的数据不会报错
x = list1.pop() #随机删除一个,并返回删除的值
print(x) #1
len(list1) #求集合的长度
x in s #测试x是否是s成员
x not in s #测试x是否不是s成员
s.copy() #浅复制
删除(集合天生就是去重的):
t.remove(90) #如果删除不存在的数据会报错
t.discard(90) #如果删除不存在的数据不会报错
x = list1.pop() #随机删除一个,并返回删除的值
print(x) #1
len(list1) #求集合的长度
x in s #测试x是否是s成员
x not in s #测试x是否不是s成员
s.copy() #浅复制
以上是关于集合操作的主要内容,如果未能解决你的问题,请参考以下文章
RedisRedis 集合 Set 操作 ( Set 集合数据 | 查询操作 | 查询所有值 | 随机获取值 | 获取交集并集差集 | 增操作 | 删操作 | 修改操作 )
Groovy集合遍历 ( 操作符重载 | 集合中的 “ + “ 操作符重载 | 集合中的 “ - “ 操作符重载 | 代码示例 )
Groovy集合遍历 ( 操作符重载 | 集合中的 “ + “ 操作符重载 | 集合中的 “ - “ 操作符重载 | 代码示例 )