0
点赞
收藏
分享

微信扫一扫

第八章 元组与集合

穿裙子的程序员 2022-03-25 阅读 58
python

目录

一、元组

二、集合

三、集合的数学操作

四、集合的相关操作

五、集合间的关系

六、列表、元组、集合、字典区别


一、元组

元组是python内置的数据结构之一,是一个不可变序列,元组是不允许修改元素

不可变序列:字符串,元组

特点:没有增删改的操作,因为对象的地址会发生改变

可变序列:列表,字典

特点:可以对序列执行增删改操作,对象的地址不发生更改

1、元组的创建方式

小括号形式

y = ('df',20,'wd')
print(y)

使用内置函数tuple( )

t = tuple(('wed',50))
print(t)

:有多个元素时,创建元组的小括号可以省略

a = 'dwd',20,'wdw'
print(a)

如果元组只包含一个元素则需要使用逗号和小括号,如果不加变量会认为是数据本身的类型

u = ('wdw',)
print(u)

2、空元组的创建

空列表、空字典、空元组的区别

#空列表
a = []
a = list()

#空字典
a = {}
a = dict()

#空元组
a = ()
a = tuple()

注:元组不允许对数据进行修改但是可以查看,但如果元素存在列表或字典,则可以对列表或字典进行修改。

t = (10,[1,2,3],50)
print(id(t))
print(t[0],type(t[0]))
print(t[1],type(t[1]))
print(t[2],type(t[2]))
t[1].append(200)   #200被加入了元组中的列表里
print(t,id(t))

3、元组的遍历

通过索引获取元素

t2 = ('dd',50,90)
print(t2[0])
print(t2[1])
print(t2[2])
#遍历元组
for i in t2:
    print(i)

二、集合

集合是python中的内置数据结构之一,与列表字典一样都属于可变类型的序列。

集合相当于没有value值的字典,他也是通过hash()函数计算存储位置,集合中的元素都是无序的,集合的元素是不允许重复的。

1、集合的创建方式

① 直接使用花括号{ }

s = {2,3,3,4,5,6}   #不能有重复元素,会自动删除重复的元素
print(s,type(s))

② 使用内置函数set( )

s1 = set(range(6))
print(s1)

③ 将其他数据类型元素放入集合中

#将列表放入集合
s2 = set([1,2,3,6,6,7])
print(s2)
#字符串放入集合
s3 = set('dgjkak')
print(s3)
#字典放入集合
s4 = set({1,2,3,4,69})
print(s4)
#将元组放入集合中
s5 = set((1,2,3,4,69))
print(s5)

④ 定义一个空集合

s6 = {}
#直接花括号是空字典,不是空集合,只能使用内置函数set
s7 = set()

2、集合生成式

集合生成式与列表生成式相同,只是将列表生成式中的中括号换成花括号

#列表生成式
lst = [i*i for i in range(10)]
print(lst)

#集合生成式,将列表生成式中括号换成花括号
lst = {i*i for i in range(10)}
print(lst)

三、集合的数学操作

1、交集运算,使用交集函数intersection,或者交集运算符&

s1 = {10,20,30,40}
s2 = {20,30,40,50,60}
#调用交集intersection函数
print(s1.intersection(s2))
#使用&运算
print(s1 & s2)

2、并集操作,使用并集函数union,或者使用并集运算符 |

#调用union函数
print(s1.union(s2))
#使用|运算
print(s1 | s2)

3、差集操作,使用差集函数difference,或者使用差集运算符 -

#使用差集函数difference
print(s1.difference(s2))
#使用-操作 
print(s1-s2)

4、对称差集,使用对称差集函数symmetric_difference,或者使用差集运算符 ^

#使用对称差集函数symmetric_difference
print(s1.symmetric_difference(s2))
#使用^操作
print(s1^s2)

四、集合的相关操作

1、集合元素的判断操作

#in 或not in
s = {10,20,30,40}
print(100 in s)

2、集合元素的添加操作

调用add( )函数一次添加一个元素

#add()一次添加一个元素
s.add(60)
print(s)

调用update( )函数至少添加一个元素

s.update({200,300,60})
print(s)
s.update([80,88])
s.update((47,56))
print(s)

注: 用update函数向集合中添加元素时不能直接添加元素update(40,50,20),而是需要放在列表或者字典中添加update({40,50,20})。

3、集合元素的删除操作

调用remove()函数,一次删除一个指定的元素,当指定元素不存在时会报错

s.remove(20)
print(s)

调用discard()函数,一次删除一个指定元素,当指定元素不存在时不抛异常

s.discard(30)
print(s)

调用pop()函数,一次删除一个任意元素,随机删除,集合中没有参数不能指定元素

s.pop()
print(s)

④ 调用clear()方法清空集合

s.clear()
print(s)

五、集合间的关系

1、集合是否相等

s1 = {10,20,50,30,50}
s2 = {11,22,33,44,45}
print(s1 != s2)

2、一个集合是否是另一个集合的子集,通过issubset()函数判断

#通过issubset()函数判断
s3 = {1,2,3,4,5,6}
s4 = {1,2,3}
s5 = {1,5,9,8}
print(s4.issubset(s3))
print(s5.issubset(s3))

3、一个集合是否是另一个集合的超集(父集)

print(s3.issuperset(s4))

4、判断两个集合之间没有交集

print(s4.isdisjoint(s5))  #没有交集为T,有交集为F

六、列表、元组、集合、字典区别

举报

相关推荐

0 条评论