使用列表理解进行合并和压缩

发布于 2024-12-08 14:53:37 字数 126 浏览 0 评论 0原文

想要合并[1,3,4],[2,5]-> [1,2,3,4,5] 和 zip [1,2,3],[4,5] -> [{1,4},{2,5}]。这不是作业,我只是想提高我的列表理解技能。如果您知道任何有关它的技巧的链接,请随时提交。

Want to merge [1,3,4], [2,5] -> [1,2,3,4,5] and zip [1,2,3],[4,5] -> [{1,4},{2,5}]. Its not homework, i just want improve my skill in list-comprehensions. If you know any links to tricks with it, dont hesitate to submit.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

耀眼的星火 2024-12-15 14:53:37
1> [1,3,4] ++ [2,5].
[1,3,4,2,5]
2> lists:zip([1,2],[4,5]).
[{1,4},{2,5}]

对于 zip,您也可以编写自己的:

% zip.erl
-module(zip).
-export([zip/2]).

zip(A, B) ->
    zip(A, B, []).

zip(_, [], Result) ->
    Result;

zip([], _, Result) ->
    Result;

zip([A|ARest], [B|BRest], Result) ->
    zip(ARest, BRest, [{A, B}|Result]).

结果:

8> c(zip).
{ok,zip}
9> zip:zip([1,2,3],[4,5]).  
[{2,5},{1,4}]
1> [1,3,4] ++ [2,5].
[1,3,4,2,5]
2> lists:zip([1,2],[4,5]).
[{1,4},{2,5}]

For the zip, you can also write your own:

% zip.erl
-module(zip).
-export([zip/2]).

zip(A, B) ->
    zip(A, B, []).

zip(_, [], Result) ->
    Result;

zip([], _, Result) ->
    Result;

zip([A|ARest], [B|BRest], Result) ->
    zip(ARest, BRest, [{A, B}|Result]).

Result:

8> c(zip).
{ok,zip}
9> zip:zip([1,2,3],[4,5]).  
[{2,5},{1,4}]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文