Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-检查所有列表中是否存在任何项_Python_Python 3.x - Fatal编程技术网

Python-检查所有列表中是否存在任何项

Python-检查所有列表中是否存在任何项,python,python-3.x,Python,Python 3.x,我有一个Python列表(python3)。例如: list_of_lists = [[vendor1, vendor2], [vendor2, vendor5, vendor10], [vendor1, vendor2, vendor7]] 我想做的是找出列表中的所有列表中是否都有一个项目。我遇到的大多数示例中,用户都知道要在他们的列表中搜索什么值,因此我在这里提出了一个单独的问题,因为我没有搜索的起始值。上述列表的结果将返

我有一个Python列表(python3)。例如:

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


任何帮助/一般“朝这个方向看”的建议都将不胜感激。谢谢

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

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'}

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

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'}

也可以尝试减少

from functools import reduce

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


result = list(reduce(lambda a, b: set(a) & set(b), list_of_lists))
# ['vendor2']

也可以尝试减少

from functools import reduce

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


result = list(reduce(lambda a, b: set(a) & set(b), list_of_lists))
# ['vendor2']

作为str或类别的供应商?作为str或类别的供应商?