【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的全集

posted @ 2016-03-12 11:13  科学小怪癖  阅读(89)  评论(0)    收藏  举报