在列表验证中合并多个项目
最初的问题围绕着寻找一种有效的方法来确定给定列表中是否存在任何项目在另一个列表中。本文没有采用自定义函数,而是探讨了解决此场景的替代方法。
方法 1:列表理解
如下例所示,可以使用列表理解隔离第一个列表中存在于第二个列表中的项目:
L1 = [2, 3, 4] L2 = [1, 2] [i for i in L1 if i in L2]
此方法产生匹配项列表,如果包含元素,则其布尔值为 True。在给定的示例中,它将返回 [2]。
方法 2:设置交集
或者,集合可用于更有效的列表比较。通过将每个列表转换为集合,可以如下找到它们的交集:
S1 = set(L1) S2 = set(L2) S1.intersection(S2)
与列表理解类似,两个集合的交集仅包含匹配的元素。由于空集计算结果为 False,因此交集结果可以直接用作真值。
逻辑计算考虑
需要注意的是,存在一个无论哪种方法,匹配项都足以返回 True。因此,此方法可能不适合所有项目都需要存在的场景。
以上是是否有更有效的方法来检查一个列表中的任何项目是否存在于另一个列表中?的详细内容。更多信息请关注PHP中文网其他相关文章!