【1.17】集合set 【2】
1、可变不可变,
修改变量的值 id()变了 这就是该类型不可变
如果id没有变 该类型就是可以变的
可变:
list 列表
dict 字典
不可变:
int 数字
str 字符串
tuple 元组
2、访问
index 访问 : 有序
str list tuple
映射访问: 无序 但是访问快,存储需要较大空间
dict
直接访问:
int
3、存储
list dict tuple 存放多
4、集合
不同的元素组成 无序存放、可以hash,可以作为字典的key
集合 去重特性 大括号,加逗号
set()可以创建集合
用set 创建 就是将传入的值进行for循环
但是创建一个空集合 就用set{}
因为{}表示的是一个字典
S.add(e)
在集合中添加一个新的元素e;如果元素已经存在,则不添加
S.remove(e)
从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误
S.discard(e)
从集合S中移除一个元素e;
S.clear()
清空集合内的所有元素
S.copy()
将集合进行一次浅拷贝
S.pop()
从集合S中删除一个随机元素;如果此集合为空,则引发KeyError异常
S.update(s2)
用 S与s2得到的全集更新变量S
S.len() 求s的元素个数
以下内容可以用运算符操作代替
S.difference(s2)
用S - s2 运算,返回存在于在S中,但不在s2中的所有元素的集合
S.difference_update(s2)
等同于 S = S - s2
S.intersection(s2)
等同于S & s2
S.intersection_update(s2)
等同于S = S & s2
S.isdisjoint(s2)
如果S与s2交集为空返回True,非空则返回False
S.issubset(s2)
判断 S是是否是S2的子集,是为True
S.issuperset(s2)
用来判断指定集合 s2 是否是S 的子集,是为True
S.symmetric_difference(s2)
返回对称补集,等同于 S ^ s2 就是 并集 减去 交集
a={"zhanshan","yaoming","234"}
b=set(["abcd","zhanshan"])
c=a.symmetric_difference(b)
d=(a.union(b)).difference(a.intersection(b))
print c
print d
S.symmetric_difference_update(s2)
用S 与 s2的对称补集更新 S
S.union(s2)
生成 S 与 s2的全集
浙公网安备 33010602011771号