软件测试|一文弄懂Python集合相关操作

简介: 软件测试|一文弄懂Python集合相关操作

前言

集合是Python的基本数据类型,是我们工作中经常会用到的数据类型,Python有一系列关于集合的操作,作为一个Pythoner,我们必须要掌握这些操作。

集合的介绍

集合是Python的基本数据类型之一,它具有以下几个特点:

  • 集合(set)是一个无序的不重复元素序列
  • 常用来对两个列表进行交并差的处理性
  • 集合与列表一样,支持所有数据类型

集合与列表的区别

列表 集合
顺序 有序 无序
内容 可重复 不可重复
功能 用于数据的使用 用于数据交集并集差集的获取
索引 有索引 无索引
符号 [] [1,2,3] {} {1,2,3}

集合内的相关操作

  1. 创建集合

通过set函数来创建集合

a_set = set()
print(a_set)
print(type(a_set))
----------------------
输出结果如下:
set()
<class 'set'>

注:不能通过set = {}来创建空集合,这样创建的实际上为字典,如下

set = {}
print(type(set))
-----------------
输出结果如下:
<class 'dict'>
  1. 集合增加元素-add()

用于集合中添加一个元素,如果集合中已存在该元素则该函数不执行
用法:set.add(item)
参数
item:要添加到集合中的元素

set1 = set()
set1.add('theshy')
print(set1)
-----------------
输出结果如下:
{'theshy'}
  1. update操作

加入一个新的集合(或列表,元组,字符串),如新集合内的元素在原集合中存在则无视
用法:
set.update(iterable)
参数
iterable:集合,列表元组字符串

set1 = set()
set1.update([1, 2, 3, 4, 5])
print(set1)
---------------------------
输出结果如下:
{1, 2, 3, 4, 5}
  1. remove操作

将集合中的某个元素删除,如元素不存在将会报错
用法
set.remove(item) #注意是元素不是索引
参数:
item:当前集合中的一个元素

set1 = {'theshy', 'rookie', 'jackeylove', 'ning', 'baolan'}
set1.remove('baolan')
print(set1)
-----------------
输出结果如下:
{'rookie', 'jackeylove', 'theshy', 'ning'}
  1. clear操作

清空当前集合中的所有元素
用法
set.clear()
参数

set1 = {'theshy', 'rookie', 'jackeylove', 'ning', 'baolan'}
set1.clear()
print(set1)
------------------------
输出结果如下:
set()
  1. discard操作

如果x在集合中,移除该元素;如果x不存在不报错
注意:

  • 集合无法通过索引获取元素
  • 集合无获取元素的任何方法
  • 集合只是用来处理列表或元组的一种临时类型,他不适合存储与传输
set1 = {'theshy', 'rookie', 'jackeylove', 'ning', 'baolan'}
set1.discard('ning')
print(set1)
-----------------
输出结果如下:
{'rookie', 'jackeylove', 'baolan', 'theshy'}

集合间的操作

  1. 集合的差集—difference函数

a,b两个集合,由所有属于a且不属于b的元素组成的集合叫做a与b的差集
difference
返回集合的差集,即返回的集合元素包含在第个集合中,但不包含在第二个集合(方法的参数)中
用法
a_set.difference(b_set)
参数:
b_set:当前集合需要对比的集
返回值
返回原始集合于对比集合的差集

set1 = {'theshy', 'rookie', 'jackeylove', 'ning', 'baolan'}
set2 = {'ning', 'baolan'}
set3 = set1.difference(set2)
print(set3)
-----------------------------------------------------
输出结果如下:
{'theshy', 'rookie', 'jackeylove'}
  1. 集合的交集—intersection函数

a,b两个集合分别拥有的相同的元素集,称为a与b的交集
用法
a_set.intersection(b_set)
参数
b_set:与当前集合对比的1或多个集合
返回值:
返回原始集合与对比集合的交集

set1 = {'theshy', 'rookie', 'jackeylove', 'ning', 'baolan'}
set2 = {'ning', 'baolan'}
set3 = set1.intersection(set2)
print(set3)
----------------------
输出结果如下:
{'ning', 'baolan'}
  1. 集合的并集-union函数
  • a,b两个集合中所有的元素(去掉重复)即为a与b的并集
  • 返回多个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次

用法:
a_set.union(b_set)
参数:
b_set:与当前集合对比的1或多个集合
返回值:
返回原始集合与对比集合的并集

set1 = {'theshy', 'rookie', 'jackeylove', 'ning', 'baolan'}
set2 = {'ning', 'baolan', 'duke'}
set3 = set1.union(set2)
print(set3)

-----------------------------
输出结果如下:
{'theshy', 'rookie', 'ning', 'duke', 'jackeylove', 'baolan'}
  1. 集合的 isdisjoint函数

判断两个集合是否包含相同的元素,如果没有返回True,否则返回False
用法:
a_set.isdisjoint(b_set)
参数:
b_set:与当前集合用来判断的集合
返回值
返回一个布尔值True或 False

set1 = {'theshy', 'rookie', 'jackeylove', 'ning', 'baolan'}
set2 = {'ning', 'baolan', 'duke'}
set3 = {'tian'}
r = set1.isdisjoint(set2)
r1 = set1.isdisjoint(set3)
print(r)
print(r1)
------------------
输出结果如下:
False
True

总结

本文主要介绍了Python中关于集合的相关操作,集合是Python中重要的数据类型,是我们必须掌握的内容。

相关文章
|
28天前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
64 1
思科设备巡检命令Python脚本大集合
|
1月前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
|
1月前
|
Python Windows 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
|
23天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
25 1
|
14天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
1月前
|
存储 缓存 API
解密 Python 集合的实现原理
解密 Python 集合的实现原理
38 11
|
1月前
|
存储 自然语言处理 数据处理
使用Python计算多个集合的交集详解
使用Python计算多个集合的交集详解
39 1
|
2月前
|
存储 API 索引
Python 的集合是怎么实现的?
Python 的集合是怎么实现的?
48 9
|
1月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。
|
2月前
|
存储 索引 Python
Python常用数据结构——集合
Python常用数据结构——集合