|
删除列表中重复的元素: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的成员,返回布尔值
|
|
|