Sorting 按内部元素对元组进行排序erlang
我有一个元组:Sorting 按内部元素对元组进行排序erlang,sorting,erlang,tuples,Sorting,Erlang,Tuples,我有一个元组: Data = { 'F_01_heirId', ["ak238", "ak239", "ak240", "ak241" ...], 'F_01_0014', ["some text", "some more text", "a some more", "xcuub", ...], 'F_02_0010', ["azcde", "axvdss" "scssd", "abcdefg as" ...], 'F_02_0014', ["1222", "1"
Data = {
'F_01_heirId', ["ak238", "ak239", "ak240", "ak241" ...],
'F_01_0014', ["some text", "some more text", "a some more", "xcuub", ...],
'F_02_0010', ["azcde", "axvdss" "scssd", "abcdefg as" ...],
'F_02_0014', ["1222", "1", "1", "10", ...],
...
}
需要按F_02_0010
对数据进行排序,因为我们正在根据排序对'F_02_0010'
进行排序,因此也会更改其他列表的相应元素
以下是排序后所需的输出:
Data = {
'F_01_heirId', ["ak241", "ak239", "ak240", "ak238" ...]
'F_01_0014', ["xcuub", "some more text", "a some more", "some text", ...],
'F_02_0010', ["abcdefg as", "axvdss", "scssd", "azcde", ...],
'F_02_0014', ["10", "1", "1", "1222", ...],
...
}
您对
数据的表示方式
不太适合您要执行的任务。以下是您必须完成的步骤:
数据中提取列列表
并将它们“压缩”到行列表(或元组)列表中。您必须使用一个自定义zip函数,该函数可以处理多个或多个列表:
manyzip([L|Ists])->
折叠=
乐趣(列表,Acc)->
列表:zipwith(乐趣(A,B)->[A | B]结束,列表,Acc)
完,,
反转=列表:foldl(Fold,[[E]| E]谢谢您的重播。我将简化我的表示。我将检查答案并接受答案。
manyzip([L|Ists]) ->
Fold =
fun(List, Acc) ->
lists:zipwith(fun(A,B) -> [A|B] end,List,Acc)
end,
Reversed = lists:foldl(Fold, [[E] || E <- L], Ists),
[lists:reverse(E) || E <- Reversed].