我知道通过执行以下操作,我可以将 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]]