文章目录

  • 元祖
  • 特点
  • 一般方法
  • 魔法方法
  • 创建
  • 查询
  • 集合
  • 特点
  • 一般方法
  • 魔法方法
  • 创建
  • 增加
  • 删除
  • 查询
  • 其他


元祖

特点

  • 可以包含任何数据类型
  • 元祖的一级数据不可更改、添加、删除
  • 有序

一般方法

遍历、切片、索引

魔法方法

创建

  • 工厂函数tuple()
  • 使用小括号进行包裹(),若只有一个元素则需要在最后面加逗号(9,)

查询

count(self, value) 返回列表中相应的值出现的次数
index(self, value, start=None, stop=None) 返回区间内第一个值所对应的序号,若不存在该值,则产生ValueError

集合

特点

  • 集合中的元素不能雷同(去重)
  • 只能包含可hash的类型(即不可变类型:数字、字符串、元祖)
  • 集合本身可变数据类型
  • 无序

一般方法

  • 遍历
  • 交集&、并集|、差集-、补集^(均衡差集)
>>> s1 = {1, 3, 8, 11}
>>> s2 = {1, 3, 9}
>>> s1&s2  #交集
{1, 3}
>>> s1|s2  #并集
{1, 3, 8, 9, 11}
>>> s1-s2  #差集(只单独属于s1的元素)
{8, 11}
>>> s1^s2  #补集(并集-交集)
{8, 9, 11}

魔法方法

创建

  • 使用{}符号进行包裹,若没有包裹任何元素则表示为空字典
  • 使用工厂函数set()转换
  • forzenset()创建不可变集合

增加

  • add(self, *args, **kwargs) 添加单个可hash元素至现有元素中
  • update(self, *args, **kwargs) 添加一个或者多个可迭代对象至现有元素中

删除

  • discard(self, *args, **kwargs) 指定一个值将集合中的值删除,若该值不存在不会报错
  • remove(self, *args, **kwargs) 指定一个值将集合中的值删除,若该值不存在会抛出KeyError异常。
  • pop(self) 随机弹出一个集合中的值,若集合为空集合则会抛出KeyError异常
  • clear(self)

查询

  • isdisjoint(self, *args, **kwargs) 判断集合之间是否有交集,若没有交集则返回True
>>> s1 = {1, 3, 8, 11}
>>> s2 = {1, 3, 9}
s1.isdisjoint(s2)
False
  • issubset(self, *args, **kwargs) 判断某集合是否为某集合的子集,若是则返回True
  • issuperset(self, *args, **kwargs) 判断某集合是否为某集合的父集,若是则返回True

其他

  • copy(self)
  • intersection(self, *args, **kwargs) 交集
  • difference(self, *args, **kwargs) 差集
  • symmetric_difference(self, *args, **kwargs) 补集
  • union(self, *args, **kwargs)并集
  • ***_update(self, *args, **kwargs) 执行*集操作后将值赋给原来的集合(***可以用以上任何一个集合操作的名字替代)
>>> s1 = {1, 3, 8, 11}
>>> s2 = {1, 3, 9}
>>> s1.symmetric_difference(s2)
{8, 9, 11}
>>> s1.symmetric_difference_update(s2)
>>> s1
{8, 11, 9}