【发布时间】:2019-07-25 22:12:24
【问题描述】:
所以我有数字列表,我想找到所有列表中存在的数字。如果可能,我不喜欢使用循环。
这是一个例子
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) 的答案,但我不确定如何在我的情况下应用它。
【问题讨论】:
-
您的列表是否始终具有唯一值?例如它永远不会像
[1,2,2,3] -
对。所有不重复的唯一值
-
好吧,你发布的内容正是你要找的东西:
set(a) & set(b) & set(c),带来了{3, 4},如果你想要你的结果作为一个列表,你可以做list(set(a) & set(b) & set(c)) -
好吧,set() 的数量会有所不同。每次我运行脚本时,它可能是 2、20、30。
-
在我看来,这是一个糟糕的骗局。解析一串整数是 2/3,集合交集是 1/3。