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}]).