Python之集合

一、集合操作

1、定义一个空集合;这里不能直接用{ }的方式定义,会被认定为字典;

Python之集合

2、集合元素是不可重复的,常用于去重操作

Python之集合

3、去重操作有两种

1)通过2可以知道,可以转换数据类型为集合进行去重

2)通过字典实现去重,字典的key值是不可重复的

Python之集合





二、集合的特性

添加一个数,输出后可以发现集合是无序的数据类型,所以不可以索引,切片,重复和连接;但是可以进行成员操作

Python之集合


三、集合的增删

1、增加

1)add添加一个元素到集合中

2)update添加集合或字符串或列表或元组多个元素到集合中

Python之集合


2、删除

1)pop随机删除元素

2)remove删除指定元素,如果不存在则报错

Python之集合

3)clean清空集合

4)del删除集合在内存中数据

Python之集合


四、集合的关系测试

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的元素

Python之集合


2、

s1.intersection_update(s2)   s1s2交集赋予s1
s1.difference_update(s2)      s1
s2差集赋予s1

Python之集合

Python之集合


3、

s1.symmetric_difference(s2)   对等差分:取出两个集合不同的元素

Python之集合


4、

print s1 & s2     交集
print s1 | s2      并集
print s1 - s2      差集
print s2 -s1 差集
print s1^s2       
对等差分

Python之集合


5、通过上面应用:找出两个目录中重复文件名

Python之集合


五、华为机试题

从1~1000随机生成数,并对它们自动排序

这里提示生成随机数的函数方法:

    import random
    random.randint(1,1000)  #1~1000
随机生成数
    random.sample[a,2] #
a列表中 随机取出两个数
   
    li=range(1,100)
    random.shuffle(li) #
1100随机输出


两种方法:

1)用列表和集合实现

Python之集合

2)用集合和for循环实现

Python之集合



六、总结

到此为止,我们可以进行一次总结:

1、

1)可变数据类型:列表、字典、集合

2)不可变数据类型:数值类型、字符串、元组

可变数据类型实现某个功能:直接改变可变的数据类型

不可变数据类型实现某个功能:需要将结果赋值给另外一个变量


2、是否实现for循环

可迭代数据类型:str、list、tuple、dict、set

不可迭代数据类型:数值类型


3、是否支持索引、切片、重复和连接

有序的数据类型:str、list、tuple

无序的数据类型:dict、set