Erlang - 根据值将列表拆分为列表

标签 erlang list

我正在尝试拆分此列表

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

进入

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

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

解决这个问题最好的 BIF 是什么,我有一些代码,但它很草率,我正在努力学习。

谢谢

编辑:

尝试了以下方法,不起作用

完成2 = 列表:splitwith( [<<"00">>], 完成1),

编辑: 这条线有效!

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">>]]

关于Erlang - 根据值将列表拆分为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491065/

相关文章:

erlang - 在理解 Erlang 代码以及它到底在做什么方面需要帮助

javascript - jQuery:选择事件上面的li

java - 分离列表适配器上的 onclicklistener

erlang - 在启动时动态设置节点名称

二郎:谁监督主管?

arrays - Dart:如何将简单的 map 转换为 dart/flutter 中的列表?

java - List<String> 到 ArrayList<String> 的转换问题

Java: List<List<String>> list = new ArrayList<>();

module - 如何将模块中的函数分配给 Erlang 中的变量?

c - 估计erlang数据结构的内存范围