今日分享:python基础之元组与集合

相对于前面介绍的几种数据类型,元组、集合的内容相对较少,所以就放在一块来介绍:

元组

元组(tuple)是由任意类型元素组成的序列,这一点和列表类似,但不同点在于元组是不可变的。

元组的创建是使用 () 来创建的,()空元组是最简单的元组,当创建包含一个或多个元组时,每一个元素后面都需要跟上一个逗号,其实在创建非空元组时,是不需要括号的,但是网上的很多资料教程中都默认在创建元组时直接输入括号,然后在括号中添加元素,下面的例子可以看到

>>> tuple_1 = () #空元组

>>> type(tuple_1) #判断类型确实为元组

<class 'tuple'>

>>> tuple_2 = 'Jack',{'name':'Tom'},4,['apple','banana']

>>> tuple_2

('Jack', {'name': 'Tom'}, 4, ['apple', 'banana'])

>>> type(tuple_2)

<class 'tuple'>

在tuple_2的创建过程中,并没有使用小括号,也可创建成功。当然,大家在创建时尽量还是加上括号,这样会比较美观便于代码阅读;而且当元素较多时,最后一个元素后可以不用添加逗号。

再重点说一下元组在操作上与列表的一些不同,也就是一些在列表中的方法或者函数在元组中是不通用的:

元组一旦被建立就不可再改变,因此就无法再进行元素的增加、删除、修改等一些基本的操作,如果需要改变,那就只能重新赋值或者定义新的元组了。

元组在实际的编程中用的比较少,内容不是太多,元组其他的的操作可以对比着列表来练习

集合

上面介绍的元组可以理解为是特殊的只可读的列表

而集合(set)可以看做是特殊的字典,字典中的键值对是无序的,集合中的元素同样也是无序的,也就无法使用位置索引的方法了;字典中的键是不允许重复出现的,集合中的元素也是唯一的不可重复的。

集合是通过 {} 来进行创建的,但是 直接创建 空{} 并不表示集合,而是表示的最简单的字典,为什么会出现这种情况呢?因为字典出现的早,向来来得早的都是有位置有身份的正室,小编也是很无奈啊,所以这一点是需要注意的。

问题来了,既然 空{} 表示的是空字典,那么空集合该如何建立呢?

>>> msg = {} #表示的是空元组

>>> type(msg)

<class 'dict'>

>>> empty_set = set()

>>> type(empty_set)

<class 'set'>

如上所示:创建空集合时,需要用set()函数来标明

常见的集合操作:

集合的交集运算,有两种方法

>>> a = {1,2,3}

>>> b = {3,4,5}

>>> a & b #特殊标点符号&

{3}

>>> a.intersection(b) #集合函数 intersection()

{3}

集合的并集运算

>>> a | b #特殊符号|

{1, 2, 3, 4, 5}

>>> a.union(b) #函数union()

{1, 2, 3, 4, 5}

注意:上述两种运算的结果是不受先后运算顺序影响的
集合的差集运算

>>> a - b #运算符号 -

{1, 2}

>>> b - a

{4, 5}

>>> a.difference(b) #函数difference()

{1, 2}

>>> b.difference(a)

{4, 5}

可以看出,结果是受先后运算顺序影响的

判断仅在两个集合中出现一次:

>>> a ^ b #特殊符号^

{1, 2, 4, 5}

>>> a.symmetric_difference(b) #函数

{1, 2, 4, 5}