簡體   English   中英

Erlang-根據值將列表分成多個列表

[英]Erlang - Split a list into lists based on value

我正在嘗試拆分此列表

List = [[<<"5">>, <<"54">>], [<<"00">>], [<<"35">>, <<"54">>, <<"45">>, <<"55">>], [<<"00">>],[ <<"5">>]]

List = [[<<"5">>, <<"54">>], [<<"35">>, <<"54">>, <<"45">>, <<"55">>], [<<"5">>]]

基本上基於<<“ 00” >>

最好的BIF解決方案是什么,我有一些代碼,但是它草率,我正在嘗試學習。

謝謝

編輯:

嘗試以下方法,不起作用

Done2 =列表:splitwith([<<“ 00” >>],Done1),

編輯:這行有效!

7> lists:splitwith(fun(A) -> A == [<<"00">>] end, List).
{[],
 [[<<"5">>,<<"54">>],
  [<<"00">>],
  [<<"35">>,<<"54">>,<<"45">>,<<"55">>],
  [<<"00">>],
  [<<"5">>]]}

但是,我需要一些更復雜的東西:比如當delim為[<<“ 00” >>,<<“ 23” >>]時

9> List = [[<<"5">>,<<"54">>], [<<"00">>,<<"23">>], [<<"35">>,<<"54">>], [<<"5">
>], [<<"00">>, <<"23">>]].

[[<<"5">>,<<"54">>],
 [<<"00">>,<<"23">>],
 [<<"35">>,<<"54">>],
 [<<"5">>],
 [<<"00">>,<<"23">>]]

10> lists:splitwith(fun(A) -> A == [<<"00">>] end, List).
{[],
 [[<<"5">>,<<"54">>],
  [<<"00">>,<<"23">>],
  [<<"35">>,<<"54">>],
  [<<"5">>],
  [<<"00">>,<<"23">>]]}

11> lists:splitwith(fun(A) -> A == [<<"00">>,<<"23">>] end, List).
{[],
 [[<<"5">>,<<"54">>],
  [<<"00">>,<<"23">>],
  [<<"35">>,<<"54">>],
  [<<"5">>],
  [<<"00">>,<<"23">>]]}
12>

那里沒有運氣

我不確定我是否正確理解您的要求。 這是一個可能的解決方案。 它將在[[<<“ 00” >> | _]。

1> List = [[<<"5">>, <<"54">>], [<<"00">>], [<<"35">>, <<"54">>, <<"45">>, <<"55">>], [<<"00">>, <<"23">> ],[ <<"5">>]].
[[<<"5">>,<<"54">>],
 [<<"00">>],
 [<<"35">>,<<"54">>,<<"45">>,<<"55">>],
 [<<"00">>,<<"23">>],
 [<<"5">>]]
2> List2 =  [ X || X <- List, case X of [ <<"00">> | _ ] -> false; _ -> true end].                                      
[[<<"5">>,<<"54">>],
 [<<"35">>,<<"54">>,<<"45">>,<<"55">>],
 [<<"5">>]]

1>列表= [[<<“ 5” >>,<<“ 54” >>],[<<“ 00” >>,<<“ 23” >>],[<<“ 35” >>, <<“ 54” >>],[<<“ 5” >>],[<<“ 00” >>,<<“ 23” >>]]]。 [[<<“ 5” >>,<<“ 54” >>],[<<“ 00” >>,<<“ 23” >>],[<<“ 35” >>,<<“ 54 “ >>],[<<” 5“ >>],[<<” 00“ >>,<<” 23“ >>]]]

2>分隔符= [<<“ 00” >>,<<“ 23” >>]。
[<< “00” >>,<< “23” >>]

3> list:filter(fun(L)-> L / =分隔符結尾,列表)。
[[<< “5” >>,<< “54” >>],[<< “35” >>,<< “54” >>],[<< “5” >>]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM