gpt4 book ai didi

Erlang - 交错的简单方法

转载 作者:行者123 更新时间:2023-12-04 20:23:41 26 4
gpt4 key购买 nike

什么是交错三个数据集的简单/有效方法..

Data1 = [<<5>>,<<6>>,<<7>>],
Data2 = [<<5>>,<<6>>,<<7>>],
Data3 = [<<5>>,<<6>>,<<7>>].

最终结果:
Final = [<<5>>, <<5>>, <<5>>, <<6>>, <<6>>, <<6>>, <<7>>, <<7>>, <<7>>]

我确定它喜欢
[X || X <- [Data1, Data2, Data3]]

最佳答案

模块功能:

zip3(X, Y, Z) when X =:= []; Y =:= []; Z =:= [] -> [];
zip3([HX | TX], [HY | TY], [HZ | TZ]) -> [ HX, HY, HZ | zip3(TX, TY, TZ)].

在外壳中相同:
F = fun(D1, D2, D3) ->
G = fun(F, X, Y, Z) when X =:= []; Y =:= []; Z =:= [] -> [];
(F, [HX | TX], [HY | TY], [HZ | TZ]) -> [ HX, HY, HZ | F(F, TX, TY, TZ)]
end,
G(G, D1, D2, D3)
end,
Data1 = [<<5>>,<<6>>,<<7>>],
Data2 = [<<5>>,<<6>>,<<7>>],
Data3 = [<<5>>,<<6>>,<<7>>],
F(Data1, Data2, Data3).
[<<5>>,<<5>>,<<5>>,<<6>>,<<6>>,<<6>>,<<7>>,<<7>>,<<7>>]

当然,您可以使用 lists 模块:
lists:append(lists:zipwith3(fun(X, Y, Z) -> [X, Y, Z] end, Data1, Data2, Data3)).
[<<5>>,<<5>>,<<5>>,<<6>>,<<6>>,<<6>>,<<7>>,<<7>>,<<7>>]

关于Erlang - 交错的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3475168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com