当前位置:首页>笔记分享>Python笔记>Python基础>Python元组与集合

Python元组与集合

1、什么是元组

元组

  • Python内置的数据类型之一,是一个不可变序列

可变序列与不可变序列

  • 不可变序列(没有增删改操作):字符串,元组
  • 可变序列(对象地址不改变):列表,字典,集合

为什么要将元组设计成不可变序列

  • 在多任务环境下,同时操作对象时不需要加锁
  • 因此,此程序中尽量使用不可变序列
    注意事项:元组中存储的是对象的引用
  • 如果元组中对象本身是不可变对象,则不能引用其他对象
  • 如果元组中的对象是可变对象,则可变对象的引用不可以改变,但数据可以改变
    元组不可变

2、元组的创建方式

  • 直接小括号(多个元素小括号可以省略)(t=‘python’,‘hello’,90)
  • 内置函数tuple()t=tuple((‘python’,‘hello’,90))
  • 只包含一个元素的元组需要使用都好和小括号t=(10,)

3、元组的遍历

元组是可叠戴对象,所以可以用for-in进行遍历

t=tuple((‘python’,’hello’,90))
for item in t
    print(item)

也可以利用下标索引,但是不知道元素个数可能会造成下标越界

4、什么是集合

  • Python语言提供的内置数据结构
  • 与列表、字典一样都属于可变类型的序列
  • 集合是没有value的字典
  • 集合中的元素不允许重复

字典图示

5、集合的创建

  • 直接{} s={‘python’ ,’hello’,90}
  • 用内置函数set()
    s1 = set(range(6))
    s2 = set([1,2,3,4,5,6,6,5])#列表转集合
    s3 = set((1,2,4,5,67,2))#元组转集合
    s4 = set(‘python’) #字符串转集合
    s5 = set({1,2,3,4,5,6,7})

    注:空集合不能用s6 = {}这样创建的是空字典
    要采用set()函数创建空集合s7 = set()

    6、集合的增、删、改、查操作

集合元素的判断操作
in或not in

集合元素的新增操作
调用add()方法,一次添加一个元素集合名.add(元素)
调用update()方法至少添加一个元素集合名.update(元素)

集合元素的删除操作
调用remove()方法,一次删除一个指定元素,如果制定元素不存在抛出KeyError集合名.remove(元素)
调用discard()方法,一次删除一个制定元素,如果指定元素不存在不抛出异常集合名.discard(元素)
调用pop()方法,一次删除一个任意(随机)元素集合名.pop()
调用clear()方法,清空集合集合名.clear()

7、集合间关系

两个集合是否相等

  • 可以用运算符==或者!=进行判断
    一个集合是否是另外一个集合子集
  • 可以调用issubset()进行判断
    一个集合是否是另一个集合的超集
  • 可以调用方法issuperset()进行判断
    两个集合是否没有交集
  • 可以调用isdisjoint进行判断
    s = {1,2,3,4,5,6}
    s2 = {1,2,3}
    s3 = {1,2,4}
    print(s2.issubset(s)) #True s2是s的子集
    print(s3.issubset(s)) #Flase s3不是s的子集
    print(s.issuperset(s2)) #True s是s2的超集
    print(s2.isdisjoint(s3)) #False 是否没有交集

    8、集合的数据操作

    交集

  • 调用intersection方法获取交集(或者用&符号也可以)
    并集
  • 调用union方法获取并集(或者用符号|也可以)
    差集
  • 调用difference方法获取差集(符号 - )
    对称差集
  • 调用symmetric_difference(符号 ^)
    s1 = {1,2,3,4}
    s2 = {2,3,4,5,6}
    #不改变原集合
    print(s1 & s2) #{2,3,4}
    print(s1 | s2) #{1,2,3,4,5,6}
    print(s1 - s2) #{1}
    print(s1 ^ s2) #{6}

    9、集合生成式

    将列表生成式的[]改成{}就行
    注:元组不可变序列无生成式
    {i*i for i in range(1,10)}
    集合生成式

给TA打赏
共{{data.count}}人
人已打赏
Python基础Python笔记

Python字典

2021-9-26 15:18:25

Python基础Python笔记

Python列表、字典、元组、集合区别总结

2021-9-27 15:30:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
有新私信 私信列表
搜索