python元祖和集合

元祖

特点

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

一般方法

遍历、切片、索引

魔法方法

创建

  • 工厂函数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}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值