Skip to main content
 首页 » 编程设计

python之如果我不使用集合,如何检查一个列表中的值是否在另一个列表中,并在 Python 中使用 if 语句的一行

2025年05月04日42luoye11

我正在尝试构建一个单行代码,它会检查一个列表中的任何值是否存在于另一个列表中,如果存在或不存在,则返回 True 或 False。

我最接近的是:

[i in list1 for i in list2] 

问题在于它将遍历 list1 并根据 list1 中的项目是否存在于 list2 中输出 True 和 False 列表。

然后我可以做的是遍历这个新创建的 True 和 False 列表,但我不能在同一行中这样做。在这种情况下,我无法使用集合或导入任何函数,因为我将其用作第三方软件中的条件,您无法在条件中插入集合或使用函数。

请您参考如下方法:

您可以使用带有生成器表达式的 any(..) 内置函数:

any(e in list2 for e in list1) 

因此这将检查是否至少有一个元素同时出现在两个列表中。

但请注意,这将导致最坏情况的 O(n2) 算法。例如,如果元素是可散列的,并且您可以使用 set,我们可以使它成为一个 O(n) 平均情况算法。