使用迭代器和集合检查列表项是否存在
验证列表中是否存在一组元素中的任何项目时,一个自然的方法是迭代每个元素并检查其存在。然而,Python 提供了比为此任务编写显式函数更有效的方法。
典型的方法涉及“或”等逻辑运算符,但如示例所示,由于 Python 的真实性,这可能会导致意外结果评估机制。
首选方法是利用推导式。例如,以下代码通过迭代 L1 中的项目并仅过滤掉 L2 中存在的项目来创建一个新列表:
L1 = [2,3,4] L2 = [1,2] [i for i in L1 if i in L2]
这将返回一个包含公共元素的列表,如果没有,则该列表可以为空找到匹配项。如果返回非空列表,则该组中至少存在一个项目。
另一种方法利用集合。集合是 Python 中的无序集合,它们提供了一种检查元素是否存在的有效方法。首先,使用 set() 函数将 L1 和 L2 转换为集合:
S1 = set(L1) S2 = set(L2)
然后,使用 junction() 方法找到它们的交集:
S1.intersection(S2)
结果将是包含公共元素的集合。空集的计算结果为 False,因此您可以直接使用结果作为真值来确定该组中是否存在任何项目。
以上是如何在 Python 中高效检查列表项是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!