【Python从零到壹】Python的元组和集合
【摘要】
文章目录
1. 元组的概念1) 什么是元组2) 元组的创建方式
作者:互联网老辛开发时间:2021/4/4/0004 6:542. 元组的遍历3.集合的概念1) 什么是集合2) 集合的创建3) 集合的相关操作4)集合的关系及数据操作a)集合的关系b) 集合的数学操作 5)集合生成式总结
1. 元组的概念
1) 什么是元组
元组: P...
1. 元组的概念
1) 什么是元组
元组: Python的内置数据结构之一,是一个不可变的序列
不可变的序列指的是没有增删改的操作。
而之前我们学习的列表和字典,是可以进行增删改查的。
2) 元组的创建方式
元组的创建方式:
- 直接小括号
t=(‘python’,‘hello’,90) - 使用内置函数tupe()
t=tpule((‘python’,‘hello’,90)) - 只包含一个元组的元素需要使用逗号和小括号
t=(100,)
我们来用代码创建和研究:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#创建元组
#1. 使用()
t=('python','yuanzu','hello',4)
#2. 使用内置函数tuple
t1=tuple(('python','hello','world'))
print(t,id(t))
print(t1,id(t1))
## 注意,元组的小括号可以省略
t2='python','hello'
print(t2,type(t2))
## 但这种形式有个问题,如果只有一个元素,需要加个逗号
t3='python',
print(type(t3))
#空元组
t4=()
t5=tuple()
print('空元组',t4,t5)
这里有一个问题: 为什么元组是一个不可变的序列,要这么设置。
- 在多任务的环境下,同时操作对象时不需要加锁。
但是在程序中尽量不要使用不可变序列
元组是可以查的,但是不能改,不会对内容造成破坏。
如果在元组中有可变列表,那么在元组中的列表的内容也不能修改,但可以添加元素。
因为添加元素不会有新的对象产生。
举例:
作者:互联网老辛
开发时间:2021/4/4/0004 6:54
#创建元组
#1. 使用()
t=('python','hello',[4,5,6])
print(t)
print(t[0],id(t[0]))
print(t[2],id(t[2]))
#修改元组是不允许的
t[0]='yuansu'
这里会报错,因为元组是不允许修改的
t[0]=‘yuansu’ 这个就无法修改
但是里面的列表可以增加:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#创建元组
#1. 使用()
t=('python','hello',[4,5,6])
print(t,id(t))
print(t[0],id(t[0]))
print(t[2],id(t[2]))
#修改元组是不允许的
#t[0]='yuansu'
#追加里列表内容
t1=t[2].append(100)
print(t1)
print(t,id(t))
可以看到在列表中追加元素,并没有改变ID
2. 元组的遍历
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#创建元组
t=('python','hello',[4,5,6])
#1.使用索引获取,这种你得知道有多少种元素
print(t[0])
print(t[1])
print(t[2])
#2. 遍历元组
for i in t: print(i)
3.集合的概念
1) 什么是集合
集合相当于是没有value的字典,是Python的内置数据结构,与列表,字典一样都属于可变类型的序列。
2) 集合的创建
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#1. 创建方式
#使用{}
s={2,3,4,5,6,7,7}
print(s) #{2, 3, 4, 5, 6, 7} 集合会把相同的元素合并
#2. 使用内置函数创建
s1=set(range(6))
print(s1)
### 3. 使用set创建,把列表转换成集合,同时去掉了重复的元素
s2=set([1,1,1,2,3,4,5,6,6])
print(s2,id(s2),type(s2))
## 将元组转成集合
s3=set((1,2,55,67))
print(s3)
如何定义空集合
set()
这里需要注意的是; 集合是无序的
3) 集合的相关操作
- 集合元素的判断操作
in 或者not in - 集合元素的新增
方法1: 调用add()一次添加一个元素
方法2: 调用update() 至少添加一个元素 - 集合中的删除操作
remove() 一次删除一个指定的操作,如果指定的元素不存在就抛出异常
discard() 方法,一次删除一个指定元素
pop() 一次只删除任意一个元素
clear() 情况集合
我们使用代码来操作:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#python 的简单操作
#判断元素是否在
s={2,3,4,5,6,7,7}
print(2 in s)
print(10 in s)
print(10 not in s)
## 集合元素的新增
s.add(50)
print(s) #{2, 3, 4, 5, 6, 7, 50}
s.update({200,300,400})
print(s) #{2, 3, 4, 5, 6, 7, 200, 300, 400, 50}
s.update((20,30)) #添加元组
print(s) #{2, 3, 4, 5, 6, 7, 200, 300, 400, 50, 20, 30}
s.update([1,2,3]) #添加列表
print(s) #{1, 2, 3, 4, 5, 6, 7, 200, 300, 400, 50, 20, 30}
#删除操作
s.remove(300)
print(300 in s) #False
s.discard(300) #没有也不会抛出异常
print(s) #{1, 2, 3, 4, 5, 6, 7, 200, 400, 50, 20, 30}
s.pop() #随机删除
print(s)# {2, 3, 4, 5, 6, 7, 200, 400, 50, 20, 30}
4)集合的关系及数据操作
a)集合的关系
- 两个集合是否相等
可以使用 == 或者!=来判断 - 一个集合是否是另外一个集合的子集
使用issubset进行判断 - 一个集合是另一个集合的超集
可以使用方法 issuperset
A是B的超集 - 两个集合没有交集
可以调用 isdisjoint进行判断
- 两个集合是否相等:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#python 的简单操作
#判断元素是否在
s1={2,3,4,5,6,7}
s2={2,3,4,8,9,0}
print(s1==s2)
print(s2!=s2)
- 一个集合是否是另一个集合的子集
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#python 的简单操作
#判断元素是否在
s1={2,3,4,5,6,7}
s2={2,3,4,8,9,0}
s3={2,3,4}
print(s3.issubset(s1)) #True
print(s2.issubset(s1)) #False
b) 集合的数学操作
我们继续从代码中来探讨:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#集合的数学操作
s1={2,3,4,5,6,7}
s2={2,3,4,8,9,0}
s3={2,3,4}
#交集
print(s1.intersection(s3)) #{2, 3, 4}
#或者使用
print(s1 & s3) #{2, 3, 4}
#并集
print(s1.union(s2)) #{0, 2, 3, 4, 5, 6, 7, 8, 9}
print(s1 | s2) #{0, 2, 3, 4, 5, 6, 7, 8, 9}
#差集
print(s1.difference(s2)) #{5, 6, 7}
print(s1-s2) #{5, 6, 7}
#对称差集
print(s1.symmetric_difference(s2)) #{0, 5, 6, 7, 8, 9}
print(s1^s2) #{0, 5, 6, 7, 8, 9}
5)集合生成式
和列表生成式差不多,只需要把【】改为{}即可
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6s
s={i*i for i in range(10)}
print(s) #{0, 1, 64, 4, 36, 9, 16, 49, 81, 25}
总结
找了一张图来总结。到现在为止学习了不少数据类型了,如果记不住也没关系,在后面使用的过程中,多去总结和练习。
文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。
原文链接:zmedu.blog.csdn.net/article/details/115422404
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)