首页 > 解决方案 > 提取列表中的 Erlang 元组

问题描述

我得到了列表中的元组:

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]

标签: listerlangtuples

解决方案


您可以尝试使用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].

推荐阅读