gpt4 book ai didi

erlang - 将元组转换为 proplists

转载 作者:行者123 更新时间:2023-12-05 01:08:40 24 4
gpt4 key购买 nike

如何从 MongoDB 转换元组

{'_id',<<"vasya">>,password,<<"12ghd">>,age,undefined}

宣传
[{'_id',<<"vasya">>},{password,<<"12ghd">>},{age,undefined}]

最佳答案

假设您想基本上将元组的两个连续元素组合在一起,这并不太难。您可以使用 element\2 从元组中提取元素。和 tuple_size\1 获取元组的大小。这里有几种方法来处理这个问题:

1> Tup = {'_id',<<"vasya">>,password,<<"12ghd">>,age,undefined}.
{'_id',<<"vasya">>,password,<<"12ghd">>,age,undefined}
2> Size = tuple_size(Tup).
6

您可以为此使用列表理解:
3> [{element(X, Tup), element(X+1, Tup)} || X <- lists:seq(1, Size, 2)].
[{'_id',<<"vasya">>},{password,<<"12ghd">>},{age,undefined}]

或者你可以压缩它:
4> lists:zip([element(X, Tup) || X <- lists:seq(1, Size, 2)], [element(X, Tup) || X <- lists:seq(2, Size, 2)]).
[{'_id',<<"vasya">>},{password,<<"12ghd">>},{age,undefined}]

您可以通过创建一个函数来处理拉出元素来清理该 zip。
slice(Tuple, Start, Stop, Step) ->
[element(N, Tuple) || N <- lists:seq(Start, Stop, Step)].

然后调用这个函数:
5> lists:zip(slice(Tup, 1, Size, 2), Slice(Tup, 2, Size, 2)).
[{'_id',<<"vasya">>},{password,<<"12ghd">>},{age,undefined}]

关于erlang - 将元组转换为 proplists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16816028/

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