软件测试|一文弄懂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中重要的数据类型,是我们必须掌握的内容。

相关文章
|
17天前
|
Python
如何使用Python的Pandas库进行数据透视图(melt/cast)操作?
Pandas的`melt()`和`pivot()`函数用于数据透视。基本步骤:导入pandas,创建DataFrame,然后使用这两个函数变换数据。示例代码:导入pandas,定义一个包含&#39;Name&#39;和&#39;Age&#39;列的DataFrame,使用`melt()`转为长格式,再用`pivot()`恢复为宽格式。
26 1
|
10天前
|
SQL 关系型数据库 MySQL
使用Python的pymysql库连接MySQL,执行CRUD操作
使用Python的pymysql库连接MySQL,执行CRUD操作:安装pymysql,然后连接(host=&#39;localhost&#39;,user=&#39;root&#39;,password=&#39;yourpassword&#39;,database=&#39;yourdatabase&#39;),创建游标。查询数据示例:`SELECT * FROM yourtable`;插入数据:`INSERT INTO yourtable...`;更新数据:`UPDATE yourtable SET...`;删除数据:`DELETE FROM yourtable WHERE...`。
25 0
|
11天前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之我需要在MaxCompute客户端添加Python第三方包,我该怎么操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
11天前
|
SQL 关系型数据库 MySQL
Python操作mysql数据库
Python操作mysql数据库
|
13天前
|
弹性计算 Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之阿里函数计算中出现'python app.py'的错误如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
24 3
|
14天前
|
存储 人工智能 索引
Python中的嵌套字典访问与操作详解
Python中的嵌套字典访问与操作详解
22 1
|
14天前
|
测试技术 Python
python集成测试执行测试
【4月更文挑战第20天】
14 6
|
16天前
|
关系型数据库 MySQL 数据库
Python从入门到精通:2.3.1数据库操作与网络编程:使用Python连接和操作数据库
Python从入门到精通:2.3.1数据库操作与网络编程:使用Python连接和操作数据库
|
16天前
|
存储 安全 Python
Python从入门到精通:2.2.2异常处理与文件操作:文件的打开、读取、写入和关闭操作。
Python从入门到精通:2.2.2异常处理与文件操作:文件的打开、读取、写入和关闭操作。
|
17天前
|
JSON 数据格式 索引
python 又一个点运算符操作的字典库:Munch
python 又一个点运算符操作的字典库:Munch
34 0