集合(set)是一个无序不重复元素的序列,基本功能是进行成员关系测试和删除重复元素;可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
#一、集合的定义
#方式1
# a = {} #定义的是空字典
# print(type(a))
<class 'dict'>
# a = {1,3,4}
# print(type(a))
<class 'set'>
#方式2
# a = set() #定义空集合
# print(type(a))
<class 'set'>
# a = set("zhang")
# print(a)
# print(type(a))
{'a', 'n', 'z', 'g', 'h'}
<class 'set'>
#二、集合的特点
#1,去重
# a = {1,2,3,5,3,4,6,6,7}
# print(a)
{1, 2, 3, 4, 5, 6, 7}
#2,身份测试
# a = {1,2,3,5,3,4,6,6,7}
# if 1 in a:
# print("T")
# else:
# print("F")
T
#三、集合运算
#方式1
# a = {1,2,3,4,5,6}
# b = {3,4,5,6}
# print(a & b) #交集(取相同元素)
# print(a | b) #并集(取所有元素并去重)
# print(a - b) #补集(把b里面存在的元素从a里面删除)
# print(a ^ b) #对称补集(把a,b不重复的元素合并在一起)
# print(a > b) #超集(a全包含b的话,打印T,反之打印F)
# print(a < b) #子集(a被b全包含的话,打印T,反之打印F)
# print(a == b) #判断元素是否相等,等于就打印T,反之打印F
# print(a != b) #判断元素是否不全相等,不等打印T,反之打印F
#方式2
# a = {1,2,3,4}
# b = {3,4,5,6}
# print(a.union(b)) #并集
# print(a.intersection(b)) #交集
# print(a.difference(b)) #补集
# print(a.symmetric_difference(b)) #对称补集
# print(a.issuperset(b)) #超集
# print(a.issubset(b)) #子集
# 四、集合的增删改查
#查(因为集合是无序的,所以不能通过索引查找)
# a = {1,2,3,4}
# print(type(a),id(a))
# print(a)
#增
#方式1
# a = {1,2,3,4}
# a.update("zhang") #可哈希 或 不可哈希 元素都能添加。如果元素已存在,会被忽略。他的工作原理是,将可迭代对象进行遍历后的元素添加到集合中
# print(a)
{1, 2, 3, 4, 'n', 'g', 'h', 'z', 'a'}
#方式2
# a = {1,2,3,4}
# a.add(5) #只能添加可哈希元素,不能添加字典、列表、集合等不可哈希元素。如果元素已存在,会被忽略。
# print(a)
{1, 2, 3, 4, 5}
#改
# a = {1,2,3,4}
# print(id(a))
# a = {2,3}
# print(a)
# print(id(a))
#删
#方式1
# a = {"zhang",5,1,"xiao",0,2,3,4}
# a.pop() #随机删除一个元素
# print(a)
{1, 2, 3, 4, 5, 'xiao', 'zhang'}
#方式2
# a = {"zhang",5,1,"xiao",0,2,3,4}
# a.remove("xiao") #指定元素删除
# print(a)
{0, 1, 2, 3, 4, 5, 'zhang'}
#方式3
# a = {"zhang",5,1,"xiao",0,2,3,4}
# a.clear() #清空
# print(a)
set()
#方式4
# a = {"zhang",5,1,"xiao",0,2,3,4}
# a.discard(3) #指定元素删除
# print(a)
{0, 1, 2, 4, 'xiao', 5, 'zhang'}
【重要消息】感谢知友您能够看到这部分内容,本文是软件测试系列知识中python脚本语言中的一篇,笔者认为本部分全面的知识应该包含如下图所示的内容:
![2880403b785401955d54e951b89d4b7c.png](https://img-blog.csdnimg.cn/img_convert/2880403b785401955d54e951b89d4b7c.png)
如果知友对这部分内容感兴趣,可以持续关注小编的账号,除此之外,小编还录制了不少这方面的技术视频,知友如果有需要,可以私聊本小编获取哦 !