当前位置: 首页 > 面试题库 >

检查一个列表中是否有任何元素在另一个列表中

顾亦
2023-03-14
问题内容

我正在尝试比较两个列表,如果第二个列表中有第一个列表中的任何值,则只打印一条消息。

def listCompare():
  list1 = [1, 2, 3, 4, 5]
  list2 = [5, 6, 7, 8, 9]
  if list1 in list2:
    print("Number was found")
  else:
    print("Number not in list")

在此示例中,我要对if进行求值,True因为两个列表中都包含5。这行不通,而且我不确定比较这两个列表的最简单方法。


问题答案:

您可以用很多方法解决。一个很容易理解的方法就是只使用一个循环。

def comp(list1, list2):
    for val in list1:
        if val in list2:
            return True
    return False

一个更紧凑的方法是使用mapreduce

reduce(lambda v1,v2: v1 or v2, map(lambda v: v in list2, list1))

更好的是,reduce可以将其替换为any

any(map(lambda v: v in list2, list1))

您还可以使用集合:

len(set(list1).intersection(list2)) > 0


 类似资料:
  • 问题内容: 我有两个带有不同对象的列表。 我想检查list2中的元素是否存在于list2中,基于特定的属性(Object1和Object2具有(以及其他),一个共有属性(类型为Long),名为attributeSame)。 现在,我这样做是这样的: 但是我认为有一种更好,更快的方法可以做到这一点:)有人可以提出吗? 谢谢! 问题答案: 如果只需要测试基本相等性,则可以使用基本JDK来完成,而无需在

  • 我有两个不同对象的列表。 我想根据特定的属性(Object1和Object2有一个共同的属性(类型为Long),名为AttributeName),检查list2中是否存在list1中的元素。 现在,我是这样做的: 但我认为有更好更快的方法可以做到这一点:)有人能提出吗? 谢谢

  • 问题内容: 我有两个清单说 现在,我想找出List2中是否存在List1的所有元素。在这种情况下,就全部存在。我不能使用子集函数,因为我可以在列表中重复元素。我可以使用for循环来计算List1中每个项目的出现次数,并查看它是否小于或等于List2中的出现次数。有一个更好的方法吗? 谢谢。 问题答案: 当出现次数无关紧要时,您仍可以通过动态创建集合来使用子集功能: 如果需要检查每个元素在第二个列表

  • 问题内容: 我有两个列表,一个包含 相册,文件对的 列表,另一个仅包含有关一张照片的信息- 相册 (位置0)和 文件 (位置1) 如何查看 照片 列表是否在 照片 列表中?就像字符串一样。 相册 , 文件的 位置无关紧要,因为不会有任何 文件 等于 相册 。 问题答案: 同样喜欢字符串。不仅如此,也是 如此 。也适用于列表中的列表: 对列表的成员资格测试仅迭代列表,并对每个元素使用相等性测试以查看

  • 问题内容: 我有两个清单: 并想要获取一个长度为(A)的布尔列表,其中每个索引处的元素指示A中相同索引处的元素是否在列表B中的任何位置。返回值为: 编写一个函数很容易,但是想知道在Python中是否有一种范式来实现它。 在R中,对应项为 问题答案: 使用列表理解: 如果巨大,那么最好将其转换为第一个。如此,将集合的成员资格测试 与列表中的进行比较。

  • 问题内容: 我有一个产品ID列表,我想找出哪些订单包含所有这些产品。订单表的结构如下: 显然,我可以使用PHP中的一些循环来做到这一点,但是我想知道是否有一种优雅的方法可以完全在mysql中完成。我理想的幻想查询将是这样的: 有希望还是我应该去阅读托尔金?:)另外,出于好奇,如果不能在mysql中使用,是否还有其他具有此功能的数据库? 问题答案: 你很亲密 关于关系代数中的“出于好奇”问题,这可以