Erlang 将列表分成N部分
我是erlang的新手,我自己也尝试了很多,但无法将列表分成N部分 以下是我的列表:Erlang 将列表分成N部分,erlang,partitioning,Erlang,Partitioning,我是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
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]]
列出:split()
仅检索一个元素。其中,[Ln-1,Ln]
将是最后一部分中的两个元素。我带来了如下内容:
-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)].
-模块(测试)。
-编译(全部导出)。
拆分([],-->[];
当长度(L)[L]时分裂(L,N);
拆分(L,N)->
{A,B}=列表:拆分(N,L),
[A |分割(B,N)]。
它不会合并分组列表的元素,但如果需要,您可以使用列表:merge