Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
Elixir 按内容而不是顺序查找列表_Elixir - Fatal编程技术网

Elixir 按内容而不是顺序查找列表

Elixir 按内容而不是顺序查找列表,elixir,Elixir,我有一个列表和一个列表 lists = [[3, 9, 1], [3, 9, 5], [4, 2], [8, 11], [9, 3, 5]] source = [3, 5, 9] 如何在列表中找到包含源所有元素的所有子列表,而不考虑它们的顺序?列表中有两个这样的子列表:[3,9,5]和[9,3,5]。快速查看列表方法让我来到这里 lists = [[3, 9, 1], [3, 9, 5], [4, 2], [9, 3, 5]] s = [9,3,5] Enum.filter(lists, fn

我有一个列表和一个列表

lists = [[3, 9, 1], [3, 9, 5], [4, 2], [8, 11], [9, 3, 5]]
source = [3, 5, 9]

如何在
列表
中找到包含
所有元素的所有子列表,而不考虑它们的顺序?
列表中有两个这样的子列表:[3,9,5]和[9,3,5]。

快速查看列表方法让我来到这里

lists = [[3, 9, 1], [3, 9, 5], [4, 2], [9, 3, 5]]
s = [9,3,5]
Enum.filter(lists, fn x -> Enum.sort(x) == Enum.sort(s) end)
# =>[[3, 9, 5], [9, 3, 5]]
更新: 您还可以排序
s
并将其分配给变量

t = Enum.sort(s)
然后检查等价性

Enum.filter(lists, fn x -> Enum.sort(x) == t end)
我认为这将是一个更好的解决方案。

使用和的组合来过滤列表:

lists |> Enum.filter(fn x ->
    Enum.all?(source, fn y -> Enum.member?(x, y) end)
end)