【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("两个列表没有相同元素")
  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值