#创作者招募令#
第六十七节:创建集合
集合作为序列形式的一种,在Python中也有应用。
先来看看集合在数学中的定义:集合(aggregate)是“确定的一堆东西”,集合里的“东西”则称为元素。而现代的集合一般被定义为:由一个或多个确定的元素所构成的整体。
在Python中,集合就是用来保存不同的元素的序列,它最好的应用就是去重,因为集合中的每一个元素都是唯一的。
集合分为两种:可变集合(set)和不可变集合(frozenset),现在学习的是可变集合。
在Python中,有关于集合的操作主要有:集合的创建;集合的添加和删除;集合的交、并和差集运算。
今天先来学习如何创建集合。
集合的创建有两种方法:直接赋值法和set()函数法。
1、直接赋值法
和Python的其它序列一样,采用直接赋值法就可以直接创建一个集合,具体语法格式如下:
setname = {“element1”,“element2”,“element3”,……,“elementn”,}
从格式上看,和其它的序列创建方法基本一样,就是集合名setname直接使用赋值运算符等号“=”赋值,等号后面的元素内容使用英文半角的大括号“{ }”括起来,各个元素之间依然使用英文半角的逗号“,”分隔。
这里虽然和字典一样使用大括号“{ }”,但是只要记住字典的元素是由键值对组成的(详见前第62节内容),就完全可以区分所创建的是字典还是集合了。
下面举一个例子:以九十年代香港娱乐圈四大天王来创建一个集合,详见下图:
集合内容的无序输出
创建这样一个集合很简单,从上图中,将这个集合输出了四次,但是每次输出的元素顺序都不一样,这就是集合的一个特性:集合中的元素是无序的。
因为集合中元素的无序性,所以无法使用索引来输出集合中的特定元素,就以上面的香港四大天王为例,同样的元素内容,当它是一个元组的时候,可以指定输出其中索引号为2的元素;当它是一个集合的时候,一样的操作,就会出现错误提示,详见下图:
集合不能使用索引
本节一开始就说过,集合的元素是具有唯一性的,就上面的例子内容,创建一个列表和一个集合,来看看集合元素唯一性的表现,详见下图:
集合元素的唯一性
从上面的实例,可以清晰地看到,虽然在列表中可以看到有两个“张学友”存在,但是在创建集合的时候输入两个重复的元素“张学友”后,最后集合都视为只有一个“张学友”元素,这就是集合元素唯一性具体体现。
2、set()函数创建集合
因为字典和集合都是使用大括号“{ }”来把元素内容包括进去的,在前面学习字典的创建的时候,已经学过直接赋值给没有内容的大括号“{ }”就可以创建一个空字典。
学到集合的时候,显然这样直接赋值就不可能创建一个空集合了,那么,Python中创建空字典则是使用set()函数来操作。
来创建一个空字典和一个空集合,使用type()来判断一下,详见下图:
空集合的创建
看上面的例子,虽然输出的是一模一样的空空的一对大括号,但是经过type()函数判断,一个是dict(字典),一个是set(集合),空集合的创建方法就是这样了。
使用set()函数不但能创建空集合,还能将列表和元组直接转换为集合。
举例来说,就使用90年代香港娱乐圈四大天王和四大花旦的名字来创建一个列表和元组,然后使用set()函数将其转换为集合,详见下图:
set函数创建集合
这样就将一个列表和元组直接转换成了一个集合。
可以看出来,set()函数创建集合是比较快捷的,所以Python中创建集合时一般优先选择set()函数方法。
明天要开始学习的“集合的添加和删除”的内容,请拭目以待。
感谢各位朋友一直以来的支持,今后有更加深入内容持续奉上。
为自己加油,我是“学海无涯自学不息!”。