Python之集合
一、集合操作
1、定义一个空集合;这里不能直接用{ }的方式定义,会被认定为字典;
2、集合元素是不可重复的,常用于去重操作
3、去重操作有两种
1)通过2可以知道,可以转换数据类型为集合进行去重
2)通过字典实现去重,字典的key值是不可重复的
二、集合的特性
添加一个数,输出后可以发现集合是无序的数据类型,所以不可以索引,切片,重复和连接;但是可以进行成员操作
三、集合的增删
1、增加
1)add添加一个元素到集合中
2)update添加集合或字符串或列表或元组多个元素到集合中
2、删除
1)pop随机删除元素
2)remove删除指定元素,如果不存在则报错
3)clean清空集合
4)del删除集合在内存中数据
四、集合的关系测试
s1={1,2,3}
s2={1,2,4}
1、
print s1.intersection(s2) 交集:将两个集合相同的元素拿出来
print s1.union(s2) 并集:将两个集合的所有元素拿出来
print s1.difference(s2) 差集 :s1 - (s1&s2)拿出s1中不同于s2的元素
print s2.difference(s1) 差集:同理拿出s2中不同于s1的元素
2、
s1.intersection_update(s2) s1和s2交集赋予s1
s1.difference_update(s2) s1和s2差集赋予s1
3、
s1.symmetric_difference(s2) 对等差分:取出两个集合不同的元素
4、
print s1 & s2 交集
print s1 | s2 并集
print s1 - s2 差集
print s2 -s1 差集
print s1^s2 对等差分
5、通过上面应用:找出两个目录中重复文件名
五、华为机试题
从1~1000随机生成数,并对它们自动排序
这里提示生成随机数的函数方法:
import random
random.randint(1,1000) #1~1000随机生成数
random.sample[a,2] #从a列表中 随机取出两个数
li=range(1,100)
random.shuffle(li) #从1~100随机输出
两种方法:
1)用列表和集合实现
2)用集合和for循环实现
六、总结
到此为止,我们可以进行一次总结:
1、
1)可变数据类型:列表、字典、集合
2)不可变数据类型:数值类型、字符串、元组
可变数据类型实现某个功能:直接改变可变的数据类型
不可变数据类型实现某个功能:需要将结果赋值给另外一个变量
2、是否实现for循环
可迭代数据类型:str、list、tuple、dict、set
不可迭代数据类型:数值类型
3、是否支持索引、切片、重复和连接
有序的数据类型:str、list、tuple
无序的数据类型:dict、set