gpt4 book ai didi

list - erlang列表操作

转载 作者:行者123 更新时间:2023-12-01 09:39:45 25 4
gpt4 key购买 nike

我有一个元组列表:

L = [{1, [a, b, c]}, {2, [d, e, f]}, {3, [[h, i, j], [k, l, m]]}]

这就是我所拥有的

lists:map(fun({_, B}-> B end, L).

输出是

[[a, b, c], [d, e, f], [[h, i, j], [k, l, m]]]

我想要的是:

[[a, b, c], [d, e, f], [h, i, j], [k, l, m]]

这似乎是一个很简单的问题,但我不知道该怎么做。请帮忙!

最佳答案

让我们看看...

1> L = [{1, [a, b, c]}, {2, [d, e, f]}, {3, [[h, i, j], [k, l, m]]}].
[{1,[a,b,c]},{2,[d,e,f]},{3,[[h,i,j],[k,l,m]]}]

简单明了,但不是尾递归:

2> lists:foldr(fun ({_,[X|_]=E},A) when is_list(X) -> lists:append(A,E);
({_,E},A) -> [E|A] end,
[], L).
[[a,b,c],[d,e,f],[h,i,j],[k,l,m]]

虽然不是尾递归不是很好,但是...

3> lists:reverse(lists:foldl(fun ({_,[X|_]=E},A) when is_list(X) ->
lists:reverse(E,A);
({_,E},A) -> [E|A] end,
[], L)).
[[a,b,c],[d,e,f],[h,i,j],[k,l,m]]

...尾递归版本也有效(感谢 Zed 指出 lists:reverse/2)。

关于list - erlang列表操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1658698/

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