Python——集合是一个非常之牛逼的数据比较方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python——集合是一个非常之牛逼的数据比较方式相关的知识,希望对你有一定的参考价值。

    什么是集合?对似懂非懂或者被集合搞晕了的同学可以来看一下。
    首先不想说太多概念性的东西,免得又晕了!

    请看下面我写的例子,看完之后自然就知道啥是集合以及如何去应用它

#变量a是一个集合类型
a = set()
print(type(a))

#定义一个列表,并存入很多重复的数字
dt = [12,9,2,8,4,9,2,7,4,5,6,11,5,7,5,7,9,8,7,2]
for i in dt: #遍历列表
    a.add(i) #将列表中的每一个元素添加进集合

#打印集合,发现,自动去掉重复的数字了
print(a)

#5存在于集合中吗?
print(5 in a)

#遍历集合
for item in a:
    print(item)

#将集合转化成列表
set_list = list(a)
print(set_list)
print(type(set_list))


那么,集合还涉及到下面几个牛逼的玩意:

并集:
    它将两个集合作为参数,并返回一个包含全部存在于两个集合中任意一个的元素的新集合,用union()方法, 操作符是:"|"
交集:
    它接收第2个集合为参数,返回的是仅包含同时存在于两个集合的那些元素,intersection方法实现,操作符是:"&"
差集:
    它告诉我们哪些是剩下的元素,它是一个存储于或是存在于这个集合或是另一个集合,但不是同时存在于两个集合的对象的集合
    symmetric_difference方法实现,操作符是:"-"


继续看例子

a = {1,2,3,4,5}
b = {6,2,3,7}

#求a和b的并集,将两组数据中共同存在的数字去除掉后,生成一个不存在重复数字的新集合
print(a.union(b))

#求a和b的交集,将两组数据中共有的数字提取出来,并生成一个新的集合,让我们知道这两组数据中哪些数字都存在于两组数据里
print(a.intersection(b))

#求a和b的差集,将两组数据中所没有的数字提取出来后,生成一个新的集合
print(a.symmetric_difference(b))

#注意:他们的结果取决于谁是调用者,谁是参数,上面的3条例子中,a集合是调用者,b集合是参数

#a集合中的所有数字都存在于b集合的话,则返回true, a是调用者,b是参数
print(a.issubset(b))

#b集合作为参数,b集合中的所有元素都存在于a集合中的话,返回true
print(a.issuperset(b))

#想要知道全部只存在于a集合而不存在于b集合的元素
print(a.difference(b)) #结果是1,4,5
#反之
print(b.difference(a)) #结果是6和7


总结:
    通过测试说明,集合可以用来操作另一个集合,集合不仅仅只是一个容器
    那么,应用场景一般有如下:
        1、对两处不同的数据,如果要快速的结合起来去做分析,那么请用集合
        2、那么快速的结合起来的目的一般是干嘛呢?,比如想知道两处数据中哪些是重复的,哪些是不同的
        
因此:
    集合是一个非常之牛逼的数据比较方式

以上是关于Python——集合是一个非常之牛逼的数据比较方式的主要内容,如果未能解决你的问题,请参考以下文章

一款非常牛逼的 Java 爬虫框架!(请低调使用)

我设计了一个牛逼的本地缓存!

200页!这可能是最牛逼的Python自学手册啦!

200页!这可能是最牛逼的Python自学手册啦!

200页!这可能是最牛逼的Python自学手册啦!

超级牛逼的Python库,漂亮的打印,爬虫爱好者最喜欢!