Python入门学习(四)元组与集合

Python入门

Python开发工具的使用:Pycharm的配置使用


第一章:Python入门学习(一)Print函数、Input函数、基本数据类型、运算符、流程控制语句、循环语句
第二章:Python入门学习(二) 列表的增删改查
第三章:Python入门学习(三) 字典的增删改查
第四章:Python入门学习(四)元组与集合
第五章:Python入门学习(五)字符串的操作
第六章:Python入门学习(六)函数学习
第七章:Python入门学习(七)Python异常处理机制
第八章:Python入门学习(八)Python中的类和对象
第九章:Python入门学习(九)Python面向对象的三大特征封装、继承和多态
第十章:Python入门学习(十)Python模块化编程
第十一章:Python入门学习(十一)Python的IO操作


第十二章:Python进阶学习(一)_学生信息管理系统项目


代码仓库地址:Python入门项目

一、元组

什么是元组

Python的内置数据结构之一,是一个不可变序列
不可变序列:int、str、元组 没有增删改的操作
可变序列:列表、字典 ,可以进行增删改操作,对象地址不发生改变。

元组的创建方式:
    1.直接小括号   t = ('Python','hello',90)
    2.使用内置函数tuple()   t = tuple(('Python','hello',90))
另外第一种方式可以省略小括号()   t = 'Python','hello',90  
但是 只包含一个元素的元组需要使用逗号和小括号  t = (10,)
# 元组的创建
t1 = ('Python','hello',90)
t11 = 'Python','hello',90
t2 = tuple(('Python','hello',90))
print(t1,type(t1))
print(t11,type(t11))
print(t2,type(t2))

在这里插入图片描述

空列表、空字典、空元组的创建

# 空列表的创建
lst = []
print(lst,type(lst))
lst = list()
print(lst,type(lst))
# 空字典的创建
d = {}
print(d,type(d))
d = dict()
print(d,type(d))
# 空元组的创建
t = ()
print(t,type(t))
t = tuple()
print(t,type(t))

在这里插入图片描述

获取元组元素的方法

t = ('Python',98,'hello')
# 获取元组元素的方法  t[索引]
print(t[0])
print(t[1])
print(t[2])

为什么要将元组创建成不可变序列

因为在多任务环境下,同时操作对象时不需要加锁,因此在程序中尽量使用不可变序列。
注意事项:
元组中存储的是对象的引用:

  1. 如果元组中的对象本身是不可变对象,则不能再引用其他对象。
  2. 如果元组中的对象是可变对象,则可变对象的引用不允许改变,但数据可以改变。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

元素的遍历

# 遍历元组
t = ('Python',98,'hello')
for item in t:
    print(item)

在这里插入图片描述

二、集合

集合是Python语言提供的内置数据结构,与列表、字典一样都属于可变类型的序列,集合是没有value的字典

集合的创建方式

集合是一种没有value的字典,与列表、字典都是可变类型序列
集合的创建方式:
    1.直接使用{}                    s = {'Python',98,'hello'}
    2.使用内置函数set()             s = set(range(5))
字典的创建方式:
    1.直接使用{key:value,key2:value2}            source = {'张三':98,'李四':100,'王五':66}
    2.使用内置函数dict{key=value,key2=value2}     user = dict(name='张三',age=18)
s1 = {'Python',98,'hello'}
s2 = set(range(5))
print(s1,type(s1))
print(s2,type(s2))
print(set([3,23,245,56]))      # 列表     # {56, 3, 245, 23}
print(set((13,34,5463,12)))    # 元组     # {34, 12, 13, 5463}
print(set('python'))           # 字符串   # {'n', 'p', 't', 'h', 'y', 'o'}
print(set({12,42,12,453}))     # 集合     # {42, 12, 453}   去重

# 定义一个空集合
s = {}  # 这样写类型是字典   {} <class 'dict'>
print(s,type(s))
s = set()   # set() <class 'set'>
print(s,type(s))

在这里插入图片描述

集合的相关操作

集合元素的判断操作

in 、not in

# 集合元素的判断操作   in 、not in
s = {'Python','hello',98,24,31}
print(98 in s)
print('hello' not in s )

在这里插入图片描述

集合元素的新增操作

  1. 调用add()方法,一次添加一个元素
  2. 调用update()方法至少添加一个元素
"""
集合元素的新增操作
    1. 调用add()方法,一次添加一个元素
    2. 调用update()方法至少添加一个元素
"""
s = {'Python','hello',98,24,31}
print(s)
s.add('world')
print(s)
s.update({11,22,33,44}) #update内是一个集合 不能写成s.update(111,222,333)的形式  # TypeError: 'int' object is not iterable
print(s)
print(s)

在这里插入图片描述

集合元素的删除操作

  1. 调用remove()方法,一次删除一个指定元素,如果指定元素不存在则抛出keyError异常;
  2. 调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛出异常;
  3. 调用pop()方法,一次只删除一个任意元素;
  4. 调用clear(),清空集合;
"""
集合元素的删除操作
    1. 调用remove()方法,一次删除一个指定元素,如果指定元素不存在则抛出keyError异常;
    2. 调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛出异常;
    3. 调用pop()方法,一次只删除一个任意元素;
    4. 调用clear(),清空集合;
"""
s = {'Python','hello',98,24,31}
print(s)
s.remove(98)
print(s)
# s.remove(100)  # 移除集合中不存在的元素会抛出异常 KeyError: 100
s.discard(100)
print(s)        # # 如果集合中存在这个元素就直接删除,但是如果集合中没有该元素也不会抛出异常
s.pop()        #  删除任意一个元素   pop()方法没有参数,带参数会抛出异常
print(s)
s.clear()
print(s)

在这里插入图片描述

集合之间的关系

两个集合是否相等:

  1. 可以使用运算符==或!=记性判断

一个集合是否是另一个集合的子集:

  1. 可以调用方法issubset进行判断

一个集合是否是另一个集合的超集:

  1. 可以调用方法issuperset进行判断

判断两个集合是否没有交集:

  1. 可以调用isdisjoint方法进行判断
# 集合之间的关系
# 判断两个集合是否相等  元素相等,集合就相等
s1 = {1,2,3,4,5}
s2 = {1,2,3,4}
print(s1 == s2)
print(s1 != s2)
print(s2.issubset(s1))  # 判断s2是否是s1的子集   True
print(s2.issuperset(s1)) #判断s2是否是s1的超集   False
print(s2.isdisjoint(s1))  # 判断两个集合是否没有交集   False就是有交集

在这里插入图片描述

集合的数学操作

在这里插入图片描述

s1 = {10,20,30,40,50}
s2 = {10,30,50,70}
print("s1",s1)
print("s2",s2)
# 交集操作
print("交集",s1.intersection(s2))   # 等价 print(s1 & s2)
print(s1 & s2)
# 并集操作
print(s1.union(s2))    # 等价于   print(s1 | s2)
print(s1 | s2)
# 差集操作
print(s1.difference(s2))   # 等价于 print(s1-s2)   从s1中减去s2的元素
print(s1-s2)
# 对称差集
print(s1.symmetric_difference(s2))  # 相当于  s1和s2的并集减去交集

集合生成式

在这里插入图片描述

"""
集合生成式   {item for item in range(1,10)}
列表生成式   [item for item in range(1,10)]    将{}换成[]就是列表生成式
字典生成式: {item:price for item,price in zip(items,prices)}
没有元组生成式
"""
print({item for item in range(1,10)})

元组与集合总结

在这里插入图片描述

列表字典元组集合比较

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu_Shihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值