找出所有出现的{1, _}; 换句话说,列表中每个元组的所有第一个元素值都是 1。
考虑以下输入:
[
{1, 0},
{2, 2},
{1, 1},
{11, 1},
{1, 3},
{1, 2},
{13, 1}
]
Run Code Online (Sandbox Code Playgroud)
预期输出:
[{1,0}, {1,1}, {1,3}, {1,2}]
Run Code Online (Sandbox Code Playgroud)
我试过了Enum.find(tl(input), fn x -> elem(x, 0) == elem(hd(input), 0) end),但我意识到Enum.find/2只返回第一个也是唯一一个符合条件或函数的元素,即:{1,1}。
我的目标是找到所有包含 的元组{1, _},其中第一个元素必须是 1,第二个元素可以是任何值。
假设您有一个包含以下列表的变量:
Prelude> arr = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
你也是,
Prelude> arr
[1,2,3,4,5]
Prelude> arr = tail arr
Prelude> arr
Run Code Online (Sandbox Code Playgroud)
为什么编译器现在冻结了?我试图在递归中实现这个代码语句,但这种现象阻止了我的递归正常工作——它不断返回一个空列表错误。
我知道这是 stackoverflow 上的一个常见问题,但找不到专门针对 Elixir 的解决方案。
考虑元组列表:
[
{1, 3, "1S"},
{10, 3, "3S"},
{10, 3, "9S"},
{10, 3, "10S"},
{10, 3, "11S"},
{12, 3, "12S"},
{13, 3, "13S"}
]
Run Code Online (Sandbox Code Playgroud)
预期结果:每个元组的第一个参数中最常见的元素是 10。每个元组的第二个参数中最常见的元素是 3。
是否有执行此操作的函数,或者我必须创建自己的函数来“迭代”每个元组列表elem(list, index)?