目录
一、元组
二、集合
三、集合的数学操作
四、集合的相关操作
五、集合间的关系
六、列表、元组、集合、字典区别
一、元组
元组是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))
10
[1, 2, 3]
50
(10, [1, 2, 3, 200], 50)
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)
{40, 200, 10, 300, 47, 80, 20, 88, 56, 60, 30}
注: 用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)
True
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
六、列表、元组、集合、字典区别