首页 > 解决方案 > Python - 检查所有列表中是否存在任何项目

问题描述

我有一个 Python (python3) 中的列表列表。例子:

list_of_lists = [[vendor1, vendor2],
                 [vendor2, vendor5, vendor10],
                 [vendor1, vendor2, vendor7]]

我要做的是找出列表列表中的所有列表中是否有一个项目。我遇到的大多数示例用户都知道要在他们的列表列表中搜索什么值,因此我在这里提出了一个单独的问题,因为我没有要搜索的起始值。上述列表的结果将返回vendor2,因为它显示在所有列表中。

任何帮助/一般“看这个方向”的建议表示赞赏。谢谢

标签: pythonpython-3.x

解决方案


假设 的所有元素list_of_lists都是字符串。使用setintersection概念。为每个子列表创建一个集合并对所有子列表进行交集

In [3]: list_of_lists = [["vendor1", "vendor2"],
   ...:                  ["vendor2", "vendor5", "vendor10"],
   ...:                  ["vendor1", "vendor2", "vendor7"]]

In [4]: set.intersection(*[set(x) for x in list_of_lists])
Out[4]: {'vendor2'}

推荐阅读