【问题标题】:Dividing a list in N parts erlang将列表分成N部分erlang
【发布时间】:2014-06-29 20:04:06
【问题描述】:

我是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] 将只有最后一部分中的两个元素。

【问题讨论】:

    标签: erlang partitioning


    【解决方案1】:

    我带来了这样的东西:

    -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 进行合并

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多