Erlang中文手册(Erldoc.com)  »  lists  »  unzip/1
Erlang并发编程 Erlang/OTP设计原理 Erlang/OTP[pdf] Mnesia用户手册[pdf] Erlang完整手册[en] 官网手册[en] 模块列表 方法列表 随机 Erlang中文社区(BBS) 美女图库

lists:unzip/1

把元组里的两个值分成为两个列表

用法:

unzip(List1) -> {List2, List3}

内部实现:

-spec unzip(List1) -> {List2, List3} when
      List1 :: [{A, B}],
      List2 :: [A],
      List3 :: [B],
      A :: term(),
      B :: term().

unzip(Ts) -> unzip(Ts, [], []).

unzip([{X, Y} | Ts], Xs, Ys) -> unzip(Ts, [X | Xs], [Y | Ys]);
unzip([], Xs, Ys) -> {reverse(Xs), reverse(Ys)}.

列表 List1 是由 2 个值组成的元组的列表,这个函数是把元组的第 1 个值分去列表 List2,第 2 个值分去列表 List3。

lists:unzip([{1, a}, {2, b}, {3, c}, {4, d}, {5, e}]).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9