首页 > 编程语言 >软件测试|一文弄懂Python集合相关操作

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

时间:2023-02-19 12:01:43浏览次数:37  
标签:set Python 弄懂 set1 ning 集合 theshy baolan 软件测试

前言

集合是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中重要的数据类型,是我们必须掌握的内容。


标签:set,Python,弄懂,set1,ning,集合,theshy,baolan,软件测试
From: https://blog.51cto.com/u_15640304/6066680

相关文章

  • 软件测试|Python数据可视化神器——pyecharts教程(三)
    前言前面两篇文章我们使用pyecharts绘制了柱状图以及基于地图的热力图等图像,在我们的日常工作中,还有饼状图也是我们经常使用的图像,下面我们来介绍一下使用pyecharts绘制饼状......
  • 软件测试|把datetime拍在沙滩上的pendulum模块
    前言之前我们有一篇文章,使用datetime模块来获取昨天今天明天的日期,不说非常复杂,但还是要说一下,还是有点麻烦。而且datetime模块还有一大缺点,就是对于时区的处理功能不够强大......
  • 软件测试|Python列表的使用,你都会了吗?(一)
    前言列表是Python的基本数据类型之一,也是我们日常使用Python中,使用较多的数据类型。Python内置了很多关于列表的操作,这些操作是我们必须掌握的,下面我们就来介绍这些操作。创......
  • Python 动态爱心表白代码,赶紧拿去用吧
    大家好,我是徐公,六年大厂程序员经验,今天为大家带来的是动态心形代码,电视剧《点燃我温暖你》同款的,大家赶紧看看,拿去向你心仪的对象表白吧,下面说一下灵感来源。灵感来源今......
  • 05-python运算符
    运算符算术运算符算数运算符:+-*///%**#+var1=7var2=90res=var1+var2print(res)#97#-var1=7var2=90res=var1-var2print(res)#......
  • python 进程与线程
    目录进程和线程概念Python中的多进程Python中的多线程多进程还是多线程单线程+异步I/O应用案例例子1:将耗时间的任务放到线程中以获得更好的用户体验。例子2:使用多进程对复......
  • python存储机制||垃圾回收机制||分代回收
    关于python的存储问题(1)由于python中万物皆对象,所以python的存储问题是对象的存储问题,并且对于每个对象,python会分配一块内存空间去存储它(2)对于整数和短小的字符等,python......
  • Python多进程与多线程
    多进程更适合CPU密集型任务,而多线程更适合IO密集型任务。多进程multiprocessing模块importmultiprocessingdefmy_function(arg1,arg2):print("Dosomethingw......
  • Python学习笔记(二)变量的使用
    一、变量的定义把程序运算的中间结果临时存到内存里,以备后面的代码继续调用,这几个名字的学名就叫做“变量”可以把变量看做保存信息的容器,它们的目的是在内存中标注和存......
  • [oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端
    编码进化回忆上次内容上次回顾了字符编码的新陈代谢ibm曾经的EBCDIC由于字符不连续导致后续出现无数问题随着网络的发展数据交换的需要原来的小隐患现在产生了......