![](/img/trans.png)
[英]Erlang split list into sublists based on value preserving empty sublists?
[英]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.