集合操作
1.集合的两个功能:
集合可以实现去重的功能;
集合可以实现关系测试; 交集, 差集,并集, 是否子集, 是否没有交集……..
2.集合set的定义
集合是不重复的数据结构;
定义集合的第一种方式 ;
s = {1, 2, 3, 2, 3}
print type(s)
print s
定义集合的第二种方式 ; 定义一个空的集合;
s = set()
print type(s)
3.实现列表去重
转换为集合数据类型; set(列表)
字典的fromkeys方法实现;
In [ ]: # 实现列表去重 1 :
In [14]: li = [1, 2, 3, 4, 1, 2]
s = set(li)
li = list(s)
print li
[1, 2, 3, 4]
In [16]: # 实现列表去重 2 :
li = [1, 2, 3, 4, 1, 2]
d = {}.fromkeys(li)
print d.keys()
[1, 2, 3, 4]
4.集合的特性
集合是无序的, 不重复的数据类型;
因此不支持索引,也不支持切片;也不支持重复;也不支持连接;
支持成员操作符;
s = {1, 2, 3, 4, 1, 2}
print 1 in s
True
print 2 not in s
False
集合支持 for 循环,是可迭代的;
for i in s:
print i
1
2
3
4
5.集合的增加
In [17]: s = {1, 2, 3, 4, 1, 2}
print s
set([1, 2, 3, 4])
s.add(1)
s.add(7)
print s
set([1, 2, 3, 4, 7])
6.集合的运算
s1 = {1, 2, 3, 4}
s2 = {1, 2, 3, 5}
交集
print s1 & s2
并集
print s1 | s2
差集
print s1 - s2
print s2 - s1
对等差分
print s1^s2
7.集合的删除
print s.pop()
s.remove删除集合指定元素, 如果不存在,则报错
s.discard删除集合指定元素, 如果不存在,do nothing
s.clear
8.总结
可变数据类型: 列表, 字典, 集合
不可变数据类型: 数值类型, 字符串, 元组
- 可变数据类型实现某个功能, 直接改变可变的数据类型;
- 不可变数据类型实现某个功能,需要将结果赋值给另外一个变量;
是否实现for循环
可迭代数据类型: str, list, tuple, dict, set
不可迭代数据类型:数值类型
是否支持索引,切片, 重复和连接特性
有序的数据类型: str, list, tuple
无序的数据类型: dict, set清空集合元素