删除列表中重复的元素:l = [a,b,c,a]
- 强制转化列表为集合类型:list(set(l))
- 将列表转化为字典,拿出里面的所有key值: dict.fromkeys(l).keys()实现switch的两种方法:
- if...elif...else... - 通过字典实现: d= {"key",func} if oper in d.keys(): d[oper]() else: print "error"集合一.集合的定义 不可变的数据类型一定可哈希;hash()内置函数可以判断某个类型是否可哈希;集合是无序的,不重复的数据组合
集合里不能定义列表
二.集合的关系测试 s1 = {1, 2, 3}s2 = {2, 3, 4}s3 = {1, 2}s4 = {5}print "s1,s2,s3的交集:", s1.intersection(s2, s3)print "s1,s2,s3的交集:", s1 & s2 & s3print "s1,s2,s3的并集:", s1.union(s2, s3)print "s1,s2,s3的并集:", s1 | s2 | s3print "s1-s2的差集:", s1.difference(s2)print "s1-s2的差集:", s1 - s2print "s1-s2-s3的差集:", s1.difference(s2, s3)print "s1-s2-s3的差集:", s1 - s2 - s3print "s2-s1的差集:", s2.difference(s1)print "s1和s2的对等差分:", s1.symmetric_difference(s2)print "s1和s2的对等差分:", s1 ^ s2print "s2和s1的对等差分:", s2.symmetric_difference(s1)# s.isdisjoint(s2) 如果有交集,返回False;否则,返回True;print "s1和s4是否没有交集:", s1.isdisjoint(s4)print "s3是否为s1的子集:", s3.issubset(s1)print "s1是否为s3的父集:", s1.issuperset(s3) 三.集合的增删改查:1.增加:s.add(4), 增加一个元素
s.update(s1)
2.删除: s.remove(1), 删除存在的元素,如果不存在,直接报错;s.discard(1) 删除存在的元素,如果不存在,do nothing;
s.pop(), 随即删除集合元素,不加任何参数;
3.复制:
s1 = s.copy() s和s1的id不同
4.清空: s.clear()5.冻集(frozenset) - 冻住的集合,不能增删改;- frozenset(set)- set(frozenset)6.其他
显示集合的长度
检测某元素是否为集合s的成员,返回布尔值