当前位置: 首页 > news >正文

【Python Tips】判断两个list是否存在相同元素——集合set的使用

目录

一、引言

二、列表相同元素集合判断算法

        1.方法一:使用集合交集

        2.方法二:使用集合和‘any()’函数

        3.方法三:使用‘set.isdisjoint(other)’方法


一、引言

        在处理列表元素时,有时需要比较两个列表元素内是否有相同的元素,使用循环查找是一种解决办法,但是对于较长的列表来说,使用集合判断是python 中一个更高效的算法。

二、列表相同元素集合判断算法

        1.方法一:使用集合交集

        集合数据结构在处理重复和查找操作时非常高效。可以将两个列表转换为集合,然后检查它们的交集是否为空。

list1 = [1, 2, 3, 4]
list2 = [3, 5, 6, 7]# 转换为集合并求交集
common_elements = set(list1) & set(list2)if common_elements:print("两个列表有相同元素:", common_elements)
else:print("两个列表没有相同元素")

        2.方法二:使用集合和‘any()’函数

        使用集合查找的特性,遍历一个列表,检查其中的元素是否在另一个列表的集合中。

list1 = [1, 2, 3, 4]
list2 = [3, 5, 6, 7]# 检查是否有相同元素
if any(item in set(list2) for item in list1):print("两个列表有相同元素")
else:print("两个列表没有相同元素")

        3.方法三:使用‘set.isdisjoint(other)’方法

        set.isdisjoint(other) 方法可以用来检查两个集合是否没有公共元素。如果没有公共元素,则返回 True,否则返回 False。

list1 = [1, 2, 3, 4]
list2 = [3, 5, 6, 7]# 使用 isdisjoint 方法
if not set(list1).isdisjoint(list2):print("两个列表有相同元素")
else:print("两个列表没有相同元素")

        

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SQL-REGEX-常见正则表达式的使用
  • python黑马笔记
  • Android C++系列:Linux信号(三)
  • TCP客户端connect断线重连
  • macOS 10.15中屏蔽Microsoft Edge浏览器的更新提示
  • C# 匿名函数与Lambda表达式
  • GitHub 详解教程
  • 密码错误springboot也正常启动了
  • 基于重要抽样的主动学习不平衡分类方法ALIS
  • EXCEL 排名(RANK,COUNTIFS)
  • 【React】箭头函数:现代 JavaScript 的高效编程方式
  • AI数字人+城市交通大数据可视化平台,让交通管理与服务更简便、更智能
  • WebKit引擎:打造无缝响应式设计
  • Python的人脸识别程序
  • Go实用技巧
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • CSS居中完全指南——构建CSS居中决策树
  • express + mock 让前后台并行开发
  • Java小白进阶笔记(3)-初级面向对象
  • JS+CSS实现数字滚动
  • Laravel 中的一个后期静态绑定
  • Mysql数据库的条件查询语句
  • PV统计优化设计
  • spring security oauth2 password授权模式
  • Vim Clutch | 面向脚踏板编程……
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 测试如何在敏捷团队中工作?
  • 离散点最小(凸)包围边界查找
  • 你真的知道 == 和 equals 的区别吗?
  • 使用docker-compose进行多节点部署
  • 学习笔记TF060:图像语音结合,看图说话
  • 自动记录MySQL慢查询快照脚本
  • raise 与 raise ... from 的区别
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #if等命令的学习
  • #Z2294. 打印树的直径
  • #每日一题合集#牛客JZ23-JZ33
  • (007)XHTML文档之标题——h1~h6
  • (C)一些题4
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (javascript)再说document.body.scrollTop的使用问题
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (WSI分类)WSI分类文献小综述 2024
  • (动态规划)5. 最长回文子串 java解决
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十六)一篇文章学会Java的常用API
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)h264中avc和flv数据的解析
  • (转)setTimeout 和 setInterval 的区别