目录
前言
本节展示内容为:什么是元组,元组的创建方式,元组的遍历;以及集合的相关知识点!
一、元组
1.什么是元组?(可变序列与不可变序列的区别)
元组:
Python内置的数据结构之一,是一个不可变序列
不可变序列与可变序列:
不可变序列:字符串、元组
不可变序列:没有增、删、改的操作
可变序列:列表、字典
可变序列:可以对序列执行增、删、改操作,对象地址不发生更改
2.元组的创建方式
元组的创建方式:
(1)直接小括号
(2)使用内置函数tuple()
(3)只包含一个元组的元素需要使用逗号和小括号
演示代码如下:
# 第一种
a = ('a', 'b', 'c')
print(a)
print(type(a))
# 或者 省略小括号
b = 'a', 'b', 'c'
print(b)
print(type(b))
c = ('a',)
print(c)
print()
# 第二种
d = tuple(('a', 'b', 'c'))
print(d)
print(type(d))
# 空元组
e = ()
print(e)
结果如下:

3.元组的获取与遍历
因为元组是可迭代的对象,所以可以使用for-in进行遍历
演示代码如下:
a = ('a', 'b', 'c')
# 第一种获取元素方式
print(a[0])
print(a[1])
# 第二种,遍历
for item in a:
print(item)
二、集合
1.什么是集合
集合:
python语言提供的内置数据结构 与列表、字典一样属于可变类型的序列
集合是没有value的字典
2.集合的创建方式
集合的创建方式:
(1)直接使用{}
(2)使用内置函数set()
演示代码如下:
a = {1, 2, 3, 4, 5} # 集合中的元素不允许重复,重复时会合并为一个
print(a)
# 使用set()创建集合
b = set(range(6))
print(b, type(b))
print(set([3, 4, 5, 6]))
print(set((3, 4, 5, 6)))
print(set('python'))
print(set({1, 2, 3, 4, 5}))
print(set())
# 定义空集合
c = set()
print(c, type(c))结果:
3.集合的相关性操作
集合的相关性操作:
(1)集合的判断操作:
in或not in
(2)集合的新增操作:
调用add(),一次添中一个元素
调用update()方法至少添加一个元素
(3)集合的删除操作:
调用remove()方法,一次删除一个指定元素,如果指定元素不存在抛出KeyError
调用discard()方法,一次删除一个指定的元素,如果指定的元素不存在不抛出异常
调用pop()方法,一次只删除一个任意元素
(4)集合的清空操作:
调用clear()方法,清空集合
演示代码如下:
d = {10, 20, 30, 40, 50, 60}
# 集合元素的判断
print(10 in d)
print(100 not in d)
print()
# 集合元素的新增
d.add(70) # 一次一个
print(d)
# update可放集合,元组,列表,但不可放单个
d.update({80, 90, 100})
print(d)
d.update([110, 120, 130])
print(d)
d.update((140, 150, 160))
print(d)
# d.update(170, 180, 190)错误
print()
# 集合的删除
d.remove(160)
print(d)
# d.remove(200) 报错
d.discard(150)
d.discard(200)
print(d)
d.pop() # 任意删除一个元素,不可加参数
print(d)
# 集合的清空
d.clear()
print(d)
结果:

4.集合间的关系
集合间的关系:
(1)两个集合是否相等:
可以使用运算符==或者!=进行判断
(2)一个集合是否是另一个集合的子集:
可以调用方法issubset进行判断
(3)一个集合是否是另一个集合的超集:
可以调用方法issuperset进行判断
(4)两个集合是否没有交集:
可以调用方法isdisjoint进行判断
演示代码如下:
# 集合是否相等
s = {10, 20, 30, 40}
s2 = {40, 20, 10, 30}
print(s == s2)
print(s != s2)
print()
# 一个集合是否是另一个集合的子集
a1 = {10, 20, 30, 40, 50, 60}
a2 = {10, 20, 30, 40}
a3 = {10, 20, 90}
print(a2.issubset(a1))
print(a3.issubset(a1))
print()
# 一个集合是否是另一个集合的超集
print(a1.issuperset(a2))
print(a1.issuperset(a3))
print()
# 两个集合是否含有交集
print(a2.isdisjoint(a3)) # 有交集为false
a4 = {100, 500, 600}
print(a4.isdisjoint(a2)) # 无交集为true
print()结果:

5.集合的数学操作
集合的数学操作
(1)交集:使用intersection()或“&”
(2)并集:使用union()或“|”
(3)差集:使用difference()或“-”
(4)对称差集:使用symmetric_difference()
演示代码如下:
# 交集
b1 = {10, 20, 30}
b2 = {20, 30, 40}
print(b1.intersection(b2))
print(b1 & b2)
print()
# 并集
print(b1.union(b2))
print(b1 | b2)
print()
# 差集
print(b1.difference(b2))
print(b1 - b2)
print()
# 对称差集
print(b1.symmetric_difference(b2))结果:

6.集合生成式
集合生成式:用于生成集合的公式(与列表生成式语法相同,只是将中括号改为花括号)
代码如下:
# 列表生成式
lis = [i*i for i in range(10)]
print(lis)
# 集合生成式
o = {i*i for i in range(10)}
print(o)结果:
