首页 > 解决方案 > 在多个列表中查找共同值

问题描述

所以我有数字列表,我想找到所有列表中存在的数字。如果可能的话,我不喜欢使用循环。

这是一个例子

a = [1, 2, 3, 4]
b = [2, 3, 4, 5, 6]
c = [3, 4, 5, 6, 10, 12]
df['A'] = [a, b, c]

预计输出为

[3, 4]

我的问题是,列表的数量没有给出也没有固定。它可以是大约 20 个不同长度的列表(例如 [a, b, c, d, e, g, ..., l])

我已经看到使用 set(a) & set(b) & set(c) 的答案,但我不确定如何在我的情况下应用它。

标签: pythonlist

解决方案


您可以使用地图和设置。交叉口

>>> a = [1, 2, 3, 4]
>>> b = [2, 3, 4, 5, 6]
>>> c = [3, 4, 5, 6, 10, 12]
>>> elements_in_all = list(set.intersection(*map(set, [a, b, c])))
>>> elements_in_all
[3, 4]

推荐阅读