Python中的集合介绍

news2024/11/28 14:32:12

集合set是一个无序的、不可重复的元素集合。

集合的创建

  • 大括号 {} 

  • set()

a = {1, 2, 3, 4, 5}
print(type(a))


b = set([1,2,3,4,5,6,7])
print(type(b),b)


c = set((1,2,3))
print(c)
运行结果:

<class 'set'>
<class 'set'> {1, 2, 3, 4, 5, 6, 7}
{1, 2, 3}
  • 集合推导式

跟列表和字典一样,集合也可以使用推导式进行生成

set1 = {x ** 2 for x in range(10)}
print(set1)  # 输出: {0, 1, 64, 4, 36, 9, 16, 49, 81, 25}

集合的更新操作

直接看下面的代码案例来掌握基本用法吧:

添加元素:

a = {1, 2, 3, 4, 5}
a.add(6)
print(a)  # {1, 2, 3, 4, 5, 6}

将一个或多个set合并到另一个set中:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set1.update(set2)
print(set1)  # {1, 2, 3, 4, 5}


set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = {5, 6, 7}
set1.update(set2, set3)
print(set1)  # {1, 2, 3, 4, 5, 6, 7}

使用remove或者discard移除指定元素:

set1 = {1, 2, 3}
set1.discard(5)  # 从集合set1中移除元素5,如果元素不存在,不会引发错误
set1.remove(4)  # 从集合set1中移除元素4,如果元素不存在,会引发KeyError

注意:remove如果移除的元素不存在,会报错,discard不会报错。

集合的其他操作

  • 并集:使用 union() 方法或 | 运算符来获取两个集合的并集。

  • 交集:使用 intersection() 方法或 & 运算符来获取两个集合的交集。

  • 差集:使用 difference() 方法或 - 运算符来获取一个集合相对于另一个集合的差集。

  • 对称差集:使用 symmetric_difference() 方法或 ^ 运算符来获取两个集合的对称差集(即两个集合中不一致的元素)。

直接上代码,看效果:

set1 = {1, 2, 3}
set2 = {2, 3, 4}


union_set = set1.union(set2)  # 或者使用 union_set = set1 | set2
intersection_set = set1.intersection(set2)  # 或者使用 intersection_set = set1 & set2
difference_set = set1.difference(set2)  # 或者使用 difference_set = set1 - set2
symmetric_difference_set = set1.symmetric_difference(set2)  # 或者使用 symmetric_difference_set = set1 ^ set2


print(union_set,set1 | set2)  # 输出: {1, 2, 3, 4} {1, 2, 3, 4}
print(intersection_set, set1 & set2)  # 输出:{2, 3} {2, 3}
print(difference_set, set1 - set2)  # 输出: {1} {1}
print(symmetric_difference_set,set1 ^ set2)  # 输出: {1, 4} {1, 4}

f5af0714b74bdce3b564737039940f6d.png

集合中怎么判断一个集合是否是另一个集合的子集:

  • 检查一个集合是否是另一个集合的子集:使用 issubset() 方法或 <= 运算符。

  • 检查另一个集合是否是这个集合的子集:使用 issuperset() 方法或 >= 运算符。

可能看上面的文字有点抽象,什么这个集合那个集合的,接下来我们直接上案例,相信大家看了之后一目了然:

set1 = {1, 2, 3}
set2 = {1, 2, 3, 4}


print(set1.issubset(set2))  # 输出: True
print(set1 <= {1, 2, 3})  # 输出: True
print(set2.issuperset(set1))  # 输出: True
print(set2 >= set1)  # 输出: True


set3 = {4, 5, 6}


print(set1.issubset(set3))  # 输出: False
print(set3.issuperset(set1))  # 输出: False

End

 
 
 
 
 
 
 
 
 
 
想进学习交流群和同行一起探讨交流的可以加我好友,如果觉得文章对你有帮助的话,欢迎点赞转发~
 
 
👇👇👇

👆长按上方二维码2秒,关注我

关注公众号,测试干货及时送达812eda199ce9349a4334f2cfa34136a3.png

往期精彩回顾

2540ce969a3b593e57b6bbeff3f8e449.png

一篇文章为你揭秘pytest的基本用法

Anaconda-一个开源的Python发行版本

Python脚本读取Consul配置信息

Python中使用pickle库进行数据的序列化存储

Python小知识-函数传参怎么设置期望的传参类型?

python解析xml遇到的问题分享(命名空间有关)

分享一下最近使用python字典取值用法的收获

Python里面怎么判断某个字符串是否包含列表中的某一个元素

Python中列表的extend()方法介绍

Python中鸭子类型与多态介绍

Python中的抽象基类介绍

Python中的type与isinstance的区别

Python中类的属性、多继承、自省机制中的__mro__、__dict__ 和dir介绍

Python中__new__和__init__的区别与联系

eb78872cc944e56d36262ecf17f6bc31.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/550777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

诺贝尔化学奖:酶分子“定向进化”

2018年&#xff0c;诺贝尔化学奖迎来了历史上第五位女性得主——加州理工学院的Frances H. Arnold教授&#xff0c;以表彰她在“酶的定向进化”这一领域的贡献。 1、“酶的定向进化”到底是什么&#xff1f; 这里有三个点&#xff0c;“酶”、“进化”还有“定向”&#xff1a…

windows10安装Qt

一、下载安装包 1、安装包下载路径调整 由于Qt公司的调整&#xff0c;从5.15版本开始原本下载的路径不再提供安装包 Index of /archive/qt 新安装包放在了official_releases里面了 Index of /official_releases/online_installers 2、安装方式调整 从5.9.0开始安装方式开始…

streamlit应用部署和streamcloud发布APP

文章目录 streamlit应用创建streamcloud创建APP注册streamcloud账号设置StreamLit许可发布APPstreamlit应用创建 streamcloud创建APP StreamCloud是一个用于部署StreamLit App 的平台。 注册streamcloud账号 点击https://share.streamlit.io/ ,进入StreamCloud 注册界面。…

在四维轻云平台中如何使用场景搭建功能?

四维轻云是一款轻量化的地理空间数据管理云平台&#xff0c;能够实现多种地理空间数据的在线管理、编辑及分享。目前&#xff0c;平台具有项目管理、成员管理、场景搭建、在线分享、素材库等功能&#xff0c;支持多用户在线协作管理&#xff0c;实现了轻量化、便捷化的空间数据…

chatgpt赋能Python-pythonda

Python在SEO优化中的作用 简介 SEO&#xff08;Search Engine Optimization&#xff09;即搜索引擎优化&#xff0c;是指通过优化网站目标关键词的排名来提高网站的曝光率和流量。Python是一种高级编程语言&#xff0c;在SEO领域中有着广泛的应用。 Python在SEO中的应用 网…

AudioGPT推出!音频领域都不放过,ChatGPT这是杀疯了!

大家好&#xff0c;我是千与千寻&#xff0c;你们可以叫我千寻哥&#xff0c;算一算写ChatGPT的技术文章已经写到第四篇了&#xff01; 今天和大家介绍的一个项目属于音频领域的ChatGPT的应用实践。真没想不到&#xff0c;在音频领域&#xff0c;ChatGPT都没有放过&#xff0c…

maven聚合工程详解

目录 一、Maven继承二、idea搭建父子工程三、可继承的 POM 元素四、Maven聚合五、idea搭建聚合工程六、继承和聚合的关系七、dependencyManagement八、pluginManagement 本篇文章重点针对这几个问题进行讲解&#xff1a; Maven继承使用IDEA搭建Maven父子工程使用IDEA搭建Maven…

【建议收藏】Python自动化必不可少的测试框架 — pytest

每天进步一点点&#xff0c;关注我哦&#xff0c;每天分享测试技术文章 Python在测试圈的应用非常广泛&#xff0c;特别是在自动化测试以及测试开发的领域&#xff0c;其中在自动化测试中我们常用的测试框架是uniitest和pytest&#xff0c;本文将带领大家搭建以及熟悉pytest的使…

改进YOLOv5系列:ResNeXt融合特征金字塔,引领YOLOv5目标检测

目录 一、介绍1、YOLOv5简介2、ResNeXt简介3、目标检测简介 二、YOLOv5及其局限性1、YOLOv5的架构与原理2、YOLOv5的优势3、YOLOv5的局限性 三、ResNeXt与特征金字塔融合1、ResNeXt的基本原理2、ResNeXt的优势3、特征金字塔的基本原理4、特征金字塔的优势5、ResNeXt与特征金字塔…

mysql JDBC的三种查询(普通、流式、游标)

使用JDBC向mysql发送查询时&#xff0c;有三种方式&#xff1a; 常规查询&#xff1a;JDBC驱动会阻塞的一次性读取全部查询的数据到 JVM 内存中&#xff0c;或者分页读取流式查询&#xff1a;每次执行rs.next时会判断数据是否需要从mysql服务器获取&#xff0c;如果需要触发读…

找计算机研究的论文18个平台

虽然说目前arvix是计算机领域跟进最新研究成果论文的网站&#xff0c;有时候我们也需要找一些其他的好论文&#xff0c;比如一个很久之前的。我们整理了18个相关平台&#xff0c;包括几个可以免费下载和阅读CS相关技术论文的网站&#xff0c;收录到 找计算机研究的论文18个平台…

secure CRT 常见问题配置

文章目录 颜色主题如何切换 SecureCRT 颜色主题如何新建SecureCRT 颜色 主题如何拷贝我的颜色主题,主题名为pic 系统间拷贝基于clipboard的文字shell下的VIM系统间拷贝1. 确保 ubuntu 上的 vim 支持 clipboard 特性2. 确保 图形shell下的 vim(gvim) 支持 系统间拷贝3. 确保 文字…

004 - STM32固件库GPIO(三)位带操作

目前掌握的对GPIO引脚的输入输出操作只能使用BSRRL/H、I/ODR寄存器&#xff0c;记得以前学51的时候&#xff0c;对于引脚的输入输出可以采用关键字sbit实现位定义,例如 sbit LED1 P1^3;在STM32中没有类似于sbit一样的关键字&#xff0c;但是提供了位带操作来实现类似于51的为…

ARM的状态传送器指令、软中断指令与协处理指令(软中断具体实现)

1.状态寄存器传送指令: 作用&#xff1a;访问&#xff08;读写&#xff09;CPSR寄存器 CPSR寄存器结构图&#xff1a; 前八位的作用&#xff1a; Bit[4:0] &#xff1a;不同的电平组合表示不同的模式&#xff0c;[10000]User [10001]FIQ [10010]IRQ [10011]SVC …

【Hadoop】二、Hadoop MapReduce与Hadoop YARN

文章目录 二、Hadoop MapReduce与Hadoop YARN1、Hadoop MapReduce1.1、理解MapReduce思想1.2、Hadoop MapReduce设计构思1.3、Hadoop MapReduce介绍1.4、Hadoop MapReduce官方示例1.5、Map阶段执行流程1.6、Reduce阶段执行流程1.7、Shuffle机制 2、Hadoop YARN2.1、Hadoop YARN…

导入源码至Android Studio

导入源码至Android Studio 参考&#xff1a; Android源码环境搭建&#xff08;aosp Ubuntu 16.04&#xff09; 使用如下的步骤&#xff1a; 1.. build/envsetup.sh (source可以用 .代替&#xff0c;即". build/envsetup.sh") 2.lunch&#xff0c;并选择要编译的项…

jmeter请求Sse长链接接口

文章目录 1.背景1.1 什么是SSE接口 2. **解决思路-尝试方法⬇️&#xff1a;**2.1 &#x1f3f3;️‍&#x1f308; **postman-sse请求结果**2.2 **⚡ jmeter报错**2.3 ☀️**封装此SSE接口**2.3.1 ❌httpclient2.3.2 ❌HttpURLConnection2.3.3 ✔️okhttp3 3. jmeter-beanshel…

跟我一起使用 compose 做一个跨平台的黑白棋游戏(3)状态与游戏控制逻辑

前言 在上一篇文章中&#xff0c;我们已经完成了黑白棋的界面设计与编写&#xff0c;今天这篇文章我们将完成状态控制和游戏逻辑代码的编写。 正如第一篇文章所述&#xff0c;在本项目中&#xff0c;我们需要实现不依赖于平台的状态管理&#xff0c;也就是使用 Flow 和 compo…

浏览器扩展一些好用插件

给浏览器添加一些插件功能&#xff0c;能够让我们用的更方便&#xff0c;开发中非常实用&#xff0c;下面直接开始 我们这里选择的是微软自带的Microsoft Edge浏览器&#xff08;谷歌也行。这两款浏览器都是非常好用的&#xff09; 我们打开浏览器找到扩展应用这个&#xff0c;…

opencv 中值滤波

中值滤波是一种常用的图像滤波算法&#xff0c;是在像素点周围进行多个点的中值滤波&#xff0c;将点的灰度值根据其周围像素点的灰度值进行平均&#xff0c;并使这些点的灰度值具有相似性&#xff0c;以达到平滑去噪的目的。中值滤波在图像处理中应用广泛&#xff0c;在图像滤…