elixir - 将列表分成两等分 (±1)

标签 elixir

我知道我可以通过这样做在 Elixir 中将偶数列表分成两半:

list   = [1, 2, 3, 4, 5, 6]
len    = length(list)/2 |> round

[a, b] = Enum.chunk(list, len)            # => [[1, 2, 3], [4, 5, 6]]

但是是否有内置的ruby-esque方法或更有效的方法来处理奇数长度列表?

最佳答案

Enum.chunk实际上需要 4 个参数,如果包含第 4 个( pad )参数,则将使用奇数长度列表:

iex(14)> Enum.chunk([1,2,3,4,5], 3, 3, [])
[[1, 2, 3], [4, 5]]

关于elixir - 将列表分成两等分 (±1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33047007/

相关文章:

functional-programming - Elixir - 改变行为

layout - 如何在没有布局的情况下呈现 Controller Action ?

elixir - 在 Phoenix/Elixir 中,我应该将用户上传的文件和图像存储在哪里?

ruby - 是否有等效于 Rails `try` 函数的 Elixir?

recursion - Elixir尾调用递归函数

erlang - mix deps.get 失败(似乎缺少 ssl?)

elixir - 对 Elixir 中的重复字母进行分组或计数

elixir - 将模块属性作为参数传递给宏

erlang - Elixir 解析二进制数据?

erlang - 在 Erlang (Elixir) 中对作为元组的记录进行模式匹配