ad

打开《Python入门与实战》_一步步学会Python_5.5 集合 (set)

admin 84 2023-10-25

【摘要】 本书摘自《Python入门与实战》一书中第5章,第5节,由王跃进主编。

5.5 集合 (set)

打开《Python入门与实战》_一步步学会Python_5.5 集合 (set)

集合是数学中的一个基本概念,是由一个或多个确定的元素所构成的整体,现在 几乎渗透到了数学的各个领域。集合的元素具有确定性、互异性、无序性的特点,元 素互异性是集合最重要的特征之一。在计算机科学中同样需要具有元素互异的数据结 构,Python 为此设计了两种称为集合的数据结构:可变集合、不可变集合。可变集合 是指元素可以被动态增加、修改和删除的集合,不可变集合是指集合一旦被创建,其 元素就不能被改变的集合。本书只介绍可变集合。

形式上,集合是用“{}”包裹的一系列用“,”分隔的元素序列。例如: animal={'老虎’,'狮子,斑马,穿山甲)

5.5.1 集合的创建

1. 使用赋值语句直接创建

语法格式如下:

setname ={element1, element2, … … }

其中,setname表示集合名; element1,element2表示集合的元素。 setname 可以是任何 符合Python命名规则的变量名。元素的个数没有限制,集合中的元素不能是可变数据 类型。

例如:

ageset ={10,15,20,22,80,25,22}

bookset={'程序设计',('c','c++,'Python'),'系统理论',('数据结构,算法’,'计算机 原理')}

说明:在创建集合时如果有重复的元素,会自动去掉重复的,只保留一个。

2. 创建空集合

创建空集合,直接使用代码: setname =set()。注意:不能使用 setname ={}。

3. 使用 set()函数创建

语法格式如下:

setname =set(data)

data 表示可以转换为集合的对象,如 range对象、字符串等其他任何可迭代对象。 例子:

age =set(range(1,10))

将创建(1,2,3,4,4,5,6,7,8,9)集合。

name ="xiaofang"

names =set(name)

将创建{'o','f','x','n','i','g','a'}集合。

li=[6,7,8,9,8]

num = set(li)

将创建{8,9,6,7}集合。

li=[6,7,8,9,8]

num = set(li)

4. 使用集合推导式创建

集合推导式与列表推导式类似,基本语法格式如下:

{表达式 for 变量 in 列表}

或者

{表达式for 变量 in 列表 if条件}

例子:

age ={i for i in range(1,120)}

将创建一个集合,里面的元素分别为1,2,3,...119,注意不包括120。

age ={i*i for i in range(1,120) if i%2==0 }

将创建一个由1~120的偶数的平方作为元素的集合,注意不包括120的平方。

我们发现,创建列表、元组、字典、集合分别可以使用内建函数 list(data)、tuple(data)、 dict(data)、set(data), 参数都是可迭代对象,只有字典稍有特别。在实际开发中,数据 量都比较大,很少使用赋值语句创建,通过内建函数是使用最多的创建方式之一。我 们只需记住这几个函数名就可以了。除元组外,列表、字典、集合也可以使用推导式 创建。推导式是Python的一种独有特性,是根据某种规律生成元素, 一次性生成所有 元素并加载到内存中,具有语言简洁、速度快等优点。但是我们也要知道,如果数据 量很大,如几个 GB 的数据,这将会占用大量内存,降低效率,这是推导式的缺点。 随着今后的学习你会接触到生成器,生成器很好地解决了这个问题。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打开《Python入门与实战》_一步步学会Python_7.1 第 7 章 文件及目录操作
下一篇:打开《Python入门与实战》_一步步学会Python_8.3.7 算法总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×