lists:unzip3/3
把元组里的 3 个值分成为 3 个列表
用法:
unzip3(List1) -> {List2, List3, List4}
内部实现:
-spec unzip3(List1) -> {List2, List3, List4} when List1 :: [{A, B, C}], List2 :: [A], List3 :: [B], List4 :: [C], A :: term(), B :: term(), C :: term(). unzip3(Ts) -> unzip3(Ts, [], [], []). unzip3([{X, Y, Z} | Ts], Xs, Ys, Zs) -> unzip3(Ts, [X | Xs], [Y | Ys], [Z | Zs]); unzip3([], Xs, Ys, Zs) -> {reverse(Xs), reverse(Ys), reverse(Zs)}.
列表 List1 是由 3 个值组成的元组的列表,这个函数是把元组的第 1 个值分去列表 List2,第 2 个值分去列表 List3,第 3 个值分去列表 List4。
lists:unzip3([{1, 2, 3}, {4, 5, 6}, {7, 8, 9}]).