元祖
特点
- 可以包含任何数据类型
- 元祖的一级数据不可更改、添加、删除
- 有序
一般方法
遍历、切片、索引
魔法方法
创建
- 工厂函数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)
判断某集合是否为某集合的子集,若是则返回Trueissuperset(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}