python基础6-集合类型

今天我们要了解的是集合类型,也是我们要说的最后一个基本数据类型了,集合(set)数据类型很像字典的key,因为它不可以重复,而且无序, 但它不是映射对应关系,就像是没有value的字典,创建一个集合只能用函数set(),这些就是集合的基本特性,我们还是看几个例子来了解下set的使用:

集合的创建和值访问:

创建集合我们用set方法,我们传入一个字符串,就创建了一个集合类型, 可以看出生成的集合值是不重复的,helloworld有三个l,但集合自动删除重复,只保留一个元素,另外访问集合元素的方法我们可以用for循环来遍历一个集合的所有元素。

集合操作符:

集合的操作符跟我们上学时候的集合得概念一样,两个集合直接可以求交集,并集,对应到集合的操作符就是‘|’和‘&’,并集就是求出的新的集合每个元素都至少是其中一个集合中的成员,交集就是这个新集合同时属于这两个集合的成员,例如:

集合的基本操作就是这些,可能有的小伙伴不知道集合用在哪里合适,其实还是要根据自己的实际情况,千万不要觉得某些数据类型没用,只能说暂时没用到而已,发明python的大神也不傻子,他肯定不会创造一个每个人都不会用的数据类型出来,为让大家更容易理解并应用,下面我说两个集合的应用场景。

集合常用的就是列表去重, 假设你有个列表,这个列表里有很多重复元素,你想快速删除重复元素,得到一个没有重复元素的列表,用set是最快的,最后再将set转成列表,就生成了一个没有重复元素的列表,如下:

第二个应用场景是,假如你现在有两个比较大的列表A和B,现在的任务是找出包含在A列表但不在B列表中的元素,这个时候一般的做法可以用列表表达式来做:

(x for x in A if x not in B)

这个方法本身没什么问题,但前提就是如果列表的元素非常的多,这种方法就会非常慢,那我们可以换一种思路去解决,

set(A) – set(B)

这个思路是用集合的概念去解决,‘-’号是集合中的差补,就是求出的新集合只能属于集合A,但不属于集合B,这种方式要比第一种要快很多,有喜欢的小伙伴可以做个测试,给大家分享下测试结果,这篇就到这里,关于Python的数据类型我们就全部介绍完了,在这些基础上我们接下来要了解语句结构例如If/else,for循环语句等。

如果喜欢这系列文章,请大家帮忙转发,您的转发是我继续写的动力,谢谢。

发表评论