python数据类型之集合(set)和其常用方法

Posted 梁少华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据类型之集合(set)和其常用方法相关的知识,希望对你有一定的参考价值。

集合是一个无序的,不重复的数据组合

作用(集合的重点):
1.去重,把一个列表变成集合就自动去重了
2.关系测试,测试两组数据库之前的交集、差集、并集等关系

s = {1, 1, 2, 2, 3, 4, a, a, !, !}
print(type(s))  # <class ‘set‘>
print(s)  # 自动去重 {1, 2, 3, 4, ‘a‘, ‘!‘}

# add 增加值,不能加一样的。只能加1个值,加多个值会报错
# pop 随机删除一个值,因为集合是无序的
# remove 写谁删谁
# discard  和remove的区别是没有的话不会报错
# update 和add不同的是可以加多个值  加的时候要加别的集合huo{‘xxx‘},直接加字符串的话会把字符串拆分开加进去

# 关系测试

iphone7 = {alex, rain, jack, mark}
iphone8 = {alex, jack, jucy, emma}

# 交集
print(iphone7.intersection(iphone8))  # {‘jack‘, ‘alex‘}  或 iphone7 & iphone8

# 差集
print(iphone7.difference(iphone8))  # {‘rain‘, ‘mark‘}  或 iphone7 - iphone8  求只买iphone8的就反过来

# 并集 (把这两个列表加起来)
print(iphone7.union(iphone8))  # 或 iphone7 | iphone8。谁union谁都行, {‘rain‘, ‘jack‘, ‘jucy‘, ‘mark‘, ‘emma‘, ‘alex‘}

# 对称差集,取交集相反(把不相交的取出来,或买了iphone7,或买了iphone8)
print(iphone7.symmetric_difference(iphone8))  # {‘rain‘, ‘jucy‘, ‘mark‘, ‘emma‘}
# 等于下面步骤
s3 = iphone7 | iphone8
s4 = iphone7 & iphone8
print(s3 - s4)  # {‘jucy‘, ‘rain‘, ‘mark‘, ‘emma‘}

# 子集和超集

iphone7.add(jucy)
iphone7.add(emma)

print(iphone7)
print(iphone7.issuperset(iphone8))  # True   或 >= iphone7>=iphone8
print(iphone8.issubset(iphone7))  # True   或 <= iphone8<=iphone7

# 判断是否不相交
print(iphone7.isdisjoint(iphone8))  # False

# 把差集赋值给iphone7
iphone7.update({ann, li})
print(iphone7.difference(iphone8))  # {‘mark‘, ‘rain‘, ‘ann‘, ‘li‘}
iphone7.difference_update(iphone8)
print(iphone7)  # {‘li‘, ‘mark‘, ‘rain‘, ‘ann‘}

 







以上是关于python数据类型之集合(set)和其常用方法的主要内容,如果未能解决你的问题,请参考以下文章

Python数据类型:集合set及使用

Redis-Redis的常用数据类型之Set集合

Redis-Redis的常用数据类型之Set集合

python基础数据类型之set(集合)

python基础入门之七 —— 集合

Python基础数据类型之set集合