删除列表中重复的元素: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 & s3
print "s1,s2,s3的并集:", s1.union(s2, s3)
print "s1,s2,s3的并集:", s1 | s2 | s3
print "s1-s2的差集:", s1.difference(s2)
print "s1-s2的差集:", s1 - s2
print "s1-s2-s3的差集:", s1.difference(s2, s3)
print "s1-s2-s3的差集:", s1 - s2 - s3
print "s2-s1的差集:", s2.difference(s1)
print "s1和s2的对等差分:", s1.symmetric_difference(s2)
print "s1和s2的对等差分:", s1 ^ s2
print "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的成员,返回布尔值