#各数据结构访问顺序:
- 直接访问:数字
- 顺序访问:字符串、列表、元组(可通过下标访问)
- 映射:字典
集合(set):
定义方式:
s = {1,2,3,’s’}
s = set(‘hello’) #可变类型集合,原集合可增删,不可修改
s = frozenset(‘hello’) #不可变集合,不可增删改
特征:
- 不同元素组成
- 无序
- 内部元素均为不可变类型(字符串、数字、元组)
#删除的三种方法:
v = s.pop() #随机删除某一元素,并赋值给v
s.remove('h') #删除指定元素,若不存在则报错
s.discard('s') #删除指定元素,若不存在不报错
#集合的关系运算(交、并、差、交叉补集):
print(p.intersection(l)) #交集
print(p & l)
print(p.union(l)) #并集
print(p | l)
print(p.difference(l)) #差集(存在于前面但不存在于后面的元素)
print(p - l)
print(p.symmetric_difference(l)) #交叉补集(并集-交集)
print(p^l)
#添加新元素:
s1.add(3) #只能更新一个值
s1.update() #求s1和s2的并集,并将结果赋值回s1(union只计算并集,不赋值给原集合)
s1.update([1,'s',(1,2)]) #同时添加多个元素时要用[]括起来(即列表形式)
#其它常见方法:
s1.isdisjoint(s2) #交集是否为空,为空返回True
s1.issubset(s2) #s1是否是s2的子集
s2.issuperset(s1) #s2是否是s1的父集