您的位置:首页 > 编程语言 > Python开发

python 学习之路(集合)

2017-12-12 16:25 288 查看
集合本身无序,并且数据不重复,主要作用:
1.去重 列表转换成集合就能去重
2.做两组数据的 交集、差集、并集 (关系测试)


声明集合

# 先声明一个列表
list1 = [1,2,3,4,4,5,3,7,2]
# 将列表变成集合
list1 = set(list1)
# 打印结果:{1, 2, 3, 4, 5, 7} 可以看出已经去重;
1
2
3
4
5


取交集

list1 = [1,2,3,4,4,5,3,7,2]
list1 = set(list1)
list2 = set([2,33,44,5,66,7,77])
a = list1.intersection(list2) # 交集方法
# a的结果:{2, 5, 7}

list1 & list2 # 用符号表示交集
1
2
3
4
5
6
7


取并集

list1 = set([1,2,3,4,4,5,3,7,2])
list2 = set([2,33,44,5,66,7,77])
a = list1.union(list2) # 并集方法
# a的结果:{1, 2, 3, 4, 5, 33, 7, 66, 44, 77}

list1 | list2 # 用符号表示并集
1
2
3
4
5
6


取差集

list1 = set([1,2,3,4,4,5,3,7,2])
list2 = set([2,33,44,5,66,7,77])
a = list1.difference(list2) # 差集方法
# a的结果:{1, 3, 4}
list2.difference(list1) # 会得到另外一种结果

list1 - list2 # 用符号表示差集
1
2
3
4
5
6
7


子集 父集

list1 = set([1,2,3,4,4,5,3,7,2])
list2 = set([2,4 ,4])
list1.issubset(list2) # 判断list1 是不是 list2的子集 结果:False
# list1 <= list2

list1.issuperset(list2) # 判断list1 是不是 list2的父集 结果:True
# list1 >= list2
1
2
3
4
5
6
7
8


对称差集

list1 = set([1,2,3,4,4,5,3,7,2])
list2 = set([2,33,44,5,66,7,77])
a = list1.symmetric_difference(list2) # 对称差集方法
# 说明:就是并集的反集 a的结果:{1, 66, 3, 4, 77, 33, 44}

list1 ^ list2 # 用符号表示对称差集
1
2
3
4
5
6


判断是否没有交集

list1 = set([1,2,3,4])
list2 = set([5,6,7,8])
list1.isdisjoint(list2) # 没有交集返回True
1
2
3


基本操作


添加

list1 = set([1,2,3,4])
list1.add(5) # 添加一项
print(list1) # 结果:{1, 2, 3, 4, 5}
list1.update([5,6,7,8]) # 添加多项
1
2
3
4


删除

list1 = set([1,2,3,4])
list1.remove(1)
print(list1) # 结果:{2, 3, 4}
# a.pop() pop 方法是删除并且将此值返回
# a.discard('a') # 如果没有被删除的值将不会报错 remove 会报错
1
2
3
4
5


长度

len(list1) # 长度
1


判断 a 是否是 b 集合的成员

a in b
1


判断 a 是否不是 b 集合的成员

a not in b
1


浅复制

list1.copy() # 对集合list1 的一个浅复制
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: