我是erlang的新手,我自己尝试了很多,但无法将列表拆分为N部分。
这是我的清单列表:
L =[
[1, 2, 3, 4, 5], %% Assume L1
[1, 8, 5, 0, 6], %% Assume L2
[1, 5, 4, 2, 6], %% Assume L3
[1, 1, 2, 2, 6], %% Assume L4
[1, 3, 4, 0, 5], %% Assume L5
[1, 8, 5, 0, 6], %% Assume L6
[4, 5, 4, 2, 6], %% Assume L7
[2, 1, 4, 2, 6], %% Assume L8
[2, 3, 4, 2, 6] %% Assume L9
...
[2, 6, 4, 2, 6] %% Assume Ln
].
并希望将其划分为N个部分,如:
L = [[L1, L2, L3], [L4, L5, L6], [L7, L8, L9],.... [Ln-1, Ln]]
lists:split()
只检索一个元素。其中,[Ln-1, Ln]
在最后一部分只是两个元素。
答案 0 :(得分:2)
我来的是这样的:
-module(test).
-compile(export_all).
split([], _) -> [];
split(L, N) when length(L) < N -> [L];
split(L, N) ->
{A, B} = lists:split(N, L),
[A | split(B, N)].
它不会合并分组列表的元素,但如果需要,您只需使用lists:merge