Python中的集合,和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同。
从形式上看,和字典类似,Python集合会将所有元素放在一对大括号{}中,相邻元素之间用“,”分隔,如下所示:
{element1,element2,...,elementn}1复制代码类型:[python]其中,elementn表示集合中的元素,个数没有限制。
从内容上看,同一集合中,只能存储不可变的数据类型,包括整形、浮点型、字符串、元组,无法存储列表、字典、集合这些可变的数据类型,否则Python解释器会抛出TypeError错误。比如说:
>>> {{'a':1}} Traceback (most recent call last): File "<pyshell#8>", line 1, in <module> {{'a':1}} TypeError: unhashable type: 'dict' >>> {[1,2,3]} Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> {[1,2,3]} TypeError: unhashable type: 'list' >>> {{1,2,3}} Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> {{1,2,3}} TypeError: unhashable type: 'set'123456789101112131415复制代码类型:[python]并且需要注意的是,数据必须保证是唯一的,因为集合对于每种数据元素,只会保留一份。例如:
>>> {1,2,1,(1,2,3),'c','c'} {1, 2, 'c', (1, 2, 3)}12复制代码类型:[python]由于Python中的set集合是无序的,所以每次输出时元素的排序顺序可能都不相同。
其实,Python中有两种集合类型,一种是set类型的集合,另一种是frozenset类型的集合,它们唯一的区别是,set类型集合可以做添加、删除元素的操作,而forzenset类型集合不行。本节先介绍set类型集合,后续章节再介绍forzenset类型集合。
Python创建set集合Python提供了2种创建set集合的方法,分别是使用{}创建和使用set()函数将列表、元组等类型数据转换为集合。
1)使用{}创建
在Python中,创建set集合可以像列表、元素和字典一样,直接将集合赋值给变量,从而实现创建集合的目的,其语法格式如下:
setname = {element1,element2,...,elementn}1复制代码类型:[python]其中,setname表示集合的名称,起名时既要符合Python命名规范,也要避免与Python内置函数重名。
举个例子:
a = {1,'c',1,(1,2,3),'c'} print(a)12复制代码类型:[python]运行结果为:
{1, 'c', (1, 2, 3)}1复制代码类型:[python]2)set()函数创建集合
set()函数为Python的内置函数,其功能是将字符串、列表、元组、range对象等可迭代对象转换成集合。该函数的语法格式如下:
setname = set(iteration)1复制代码类型:[python]其中,iteration就表示字符串、列表、元组、range对象等数据。
例如:
set1 = set("c.biancheng.net") set2 = set([1,2,3,4,5]) set3 = set((1,2,3,4,5)) print("set1:",set1) print("set2:",set2) print("set3:",set3)123456复制代码类型:[python]运行结果为:
set1: {'a', 'g', 'b', 'c', 'n', 'h', '.', 't', 'i', 'e'} set2: {1, 2, 3, 4, 5} set3: {1, 2, 3, 4, 5}123复制代码类型:[python]注意,如果要创建空集合,只能使用set()函数实现。因为直接使用一对{},Python解释器会将其视为一个空字典。
Python访问set集合元素由于集合中的元素是无序的,因此无法向列表那样使用下标访问元素。Python中,访问集合元素最常用的方法是使用循环结构,将集合中的数据逐一读取出来。
例如:
a = {1,'c',1,(1,2,3),'c'} for ele in a: print(ele,end=' ')123复制代码类型:[python]运行结果为:
1 c (1, 2, 3)1复制代码类型:[python]由于目前尚未学习循环结构,以上代码初学者只需初步了解,后续学习循环结构后自然会明白。
Python删除set集合和其他序列类型一样,手动函数集合类型,也可以使用del()语句,例如:
a = {1,'c',1,(1,2,3),'c'} print(a) del(a) print(a)1234复制代码类型:[python]运行结果为:
{1, 'c', (1, 2, 3)} Traceback (most recent call last): File "C:\Users\mengma\Desktop\1.py", line 4, in <module> print(a) NameError: name 'a' is not defined12345复制代码类型:[python]Python set集合最常用的操作是向集合中添加、删除元素,以及集合之间做交集、并集、差集等运算。受到篇幅的限制,这些知识会放到下节进行详细讲解。
开课吧广场-人才学习交流平台
logo设计网(www.shejilogo.com),专业的logo免费设计在线生成网站,全自动智能化logo设计,商标设计,logo在线生成!
欢迎使用logo设计网制作属于您公司自己的logo,不仅专业而且经济实惠,全方位满足您公司品牌化、视觉化的需求。