Python之集合
一、概念:
集合特点:(1)集合天生去重; (2)集合是无序的,不能使用下标取值.
定义一个空的集合:
s = set()
集合是一种数据类型(和int float list str dict tuple boolean一样),类似于列表,特点:
(1)是无序的,不可以通过下标取值,可以循环,但不能排序,如果想要排序,可以转成列表
l=list(res)
(2)天生去重,就是说集合中是没有重复的数据
l=[1,1,2,2,3,3] res=set(l) print(res) #结果为:{1,2,3}
集合的作用:
1、它可以把一个列表中重复的数据去掉,而不需要你再写判断
2、可以做关系测试,比如说有两个班,一个性能测试班,一个是接口测试班的,想找出来既学习了性能又学习了接口测试的同学,就可以用集合
定义集合:
list = [2,3,1,2,3,4] s_list = set(list)#这样就定义了一个集合 set1 = set([1,3,4,5,6])#这种方式和上面的都是把list转换成一个集合 set2={'hehe','hehe1','hehe3'}#这种方式是直接定义一个集合
二、取集合的方式
xingneng=['baibai','heihei','杨洋','小黑'] zidonghua=['baibai','小刘','heihei','小黑','大王'] #类型转换,列表转成集合: print(xingneng=set(xingneng)) print(zidonghua=set(zidonghua))
1、取交集
即:取两个集合相同的元素
方式一: .intersection()方法;
方式二: 一个 & 符。
s1 = {1,2,3,4,5} s2 = {4,5,6,7,8} res = s1.intersection(s2) # 取交集 方式一 res = s1 & s2 # 取交集 方式二 print(res)
2、取并集
即:把两个集合合并到一起,去掉重复的。
方式一: .symmetric_difference()方法;
方式二: 一个 ^ 符或是一个 | 。
res = s1.symmetric_difference(s2) # 取对称差集的方式一 res = s1^s2 # 取对称差集的方式二
3、取差集
即:其中一个集合存在,另外一个集合没有
方法: -
s1 = {1,2,3,4,5} s2 = {4,5,6,7,8} print(s1-s2) 结果:{1, 2, 3}
三、集合的判断方式
-
子集与父集
import string #导入字符串模块 l1=set(string.ascii_lowercase) #取所有小写字母,并存成集合 l2={'a','b','c'}
可以看到,l2是l1的子集,l1是l2的父集。
1、判断A是否是B的子集
使用A.issubset(B)方法:
print(l2.issubset(l1) #结果:True
2、判断A是否是B的子集
使用A.issuperset(B)方法:
print(l1.issuperset(l2) #结果为True
3、判断A与B是否无交集
使用.isdisjoint()方法:
print(l1.isdisjoint(l2) #结果:False
四、集合的使用方式
1、集合中加元素
使用.add()方法:
l2.add('s')
2、集合中删除指定元素
使用.remove()方法:
l2.remove('a')
3、集合中随机删除元素
使用.pop()方法:
l2.pop()
4、把另外的集合加入这个集合里面
使用.updata()
l2.updata({4,5,6})
5、循环
集合也可以循环:
for l in l1: print(l)
本文来自博客园,作者:他还在坚持嘛,转载请注明原文链接:他还在坚持嘛 https://www.cnblogs.com/brf-test/p/11553038.html