我正在尝试拆分此列表
List = [[<<"5">>, <<"54">>], [<<"00">>], [<<"35">>, <<"54">>, <<"45">>, <<"55">>], [<<"00">>],[ <<"5">>]]
进入
List = [[<<"5">>, <<"54">>], [<<"35">>, <<"54">>, <<"45">>, <<"55">>], [<<"5">>]]
基本上基于&lt;&lt;“00”&gt;&gt;
最好的BIF是什么,我有一些代码,但它草率,我想学习。
由于
编辑:
尝试以下操作,无效
Done2 = list:splitwith([&lt;&lt;“00”&gt;&gt;],Done1),
编辑: 这条线有效!
7> lists:splitwith(fun(A) -> A == [<<"00">>] end, List).
{[],
[[<<"5">>,<<"54">>],
[<<"00">>],
[<<"35">>,<<"54">>,<<"45">>,<<"55">>],
[<<"00">>],
[<<"5">>]]}
然而,我需要一些更复杂的东西:例如,当分隔符是[&lt;&lt;“&lt;”&lt;“&lt;&quot;”&gt;&gt;&gt;,&lt;&lt;“23”&gt;&gt;]
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>
那里没有运气
答案 0 :(得分:3)
我不确定我是否正确理解您的要求。这是一个可能的解决方案。它会将列表拆分为任何分隔符,如[&lt;&lt;“&lt;”&lt;“&lt;”&lt;“&lt;”&lt;“ | _]。
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 :(得分:1)
1&GT;列表= [[&lt;&lt;“5”&gt;&gt;,&lt;&lt;“54”&gt;&gt;],[&lt;&lt;“00”&gt;&gt;,&lt;&lt;“23”&gt; ;&gt;],[&lt;&lt;“35”&gt;&gt;,&lt;&lt;“54”&gt;&gt;],[&lt;&lt;“5”&gt;&gt;],[&lt;&lt; “00”&gt;&gt;,&lt;&lt;“23”&gt;&gt;]]。 [[&LT;&LT; “5” &GT;&GT;,&LT;&LT; “54” &GT;&GT], 并[d&LT; “00” &GT;&GT;,&LT;&LT; “23” &GT;&GT], 并[d&LT; “35” &GT;&GT;,&LT;&LT; “54” &GT;&GT], 并[d&LT; “5” &GT;&GT], 并[d&LT; “00” &GT;&GT;,&LT;&LT; “23” &GT;&GT;]]
2 - ;分隔符= [&lt;&lt;“00”&gt;&gt ;,&lt;&lt;“23”&gt;&gt;]。
并[d&LT; “00” &GT;&GT;,&LT;&LT; “23” &GT;&GT;]
3&GT; lists:filter(fun(L) - &gt; L / = Delimiter end,List)。
[[&LT;&LT; “5” &GT;&GT;,&LT;&LT; “54” &GT;&GT],并[d&LT; “35” &GT;&GT;,&LT;&LT; “54” &GT;&GT ],并[d&LT; “5” &GT;&GT;]]