【问题标题】:Extract Erlang tuples in list提取列表中的 Erlang 元组
【发布时间】:2020-10-04 04:42:27
【问题描述】:

我得到了列表中的元组:

Contents = [{john, [jill,joe,bob]},
            {jill, [bob,joe,bob]},
            {sue, [jill,jill,jill,bob,jill]},
            {bob, [john]},
            {joe, [sue]}],

我想得到的打印是:

john: [jill,joe,bob]
jill: [bob,joe,bob]
sue: [jill,jill,jill,bob,jill]
bob: [john]
joe: [sue]

【问题讨论】:

    标签: list erlang tuples


    【解决方案1】:

    您可以尝试使用lists:foreach/2 或尝试实现您自己的迭代函数并打印出列表项:

    1> Contents = [{john, [jill,joe,bob]},
    {jill, [bob,joe,bob]},
    {sue, [jill,jill,jill,bob,jill]},
    {bob, [john]},
    {joe, [sue]}].
    2> lists:foreach(fun({K, V}) -> 
      io:format("~p : ~p~n", [K, V]) 
    end, Contents).
    

    自定义函数:

    % call: print_content(Contents).
    print_content([]) ->
      ok;
    print_content([{K, V}|T]) ->
      io:format("~p : ~p~n", [K, V]),
      print_content(T).
    

    列表生成器:

    1> [io:format("~p : ~p~n", [K, V]) ||  {K, V} <- Contents].
    

    【讨论】:

      【解决方案2】:

      您可以简单地以任何您喜欢的方式遍历列表,并使用模式匹配提取元组:

      { Name, ListOfNames } = X
      

      其中X 是您列表中的当前项目。然后您可以根据需要打印它们。

      【讨论】:

        猜你喜欢
        • 2018-04-07
        • 2014-06-30
        • 1970-01-01
        • 2016-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-20
        • 1970-01-01
        相关资源
        最近更新 更多