我有一组数组的数据。举个例子
[[1,3],
[4,3],
[1,2],
[7,2]]
我想将其转换为
[(3,[1,4])
(2,[1,7])]
即:创建一个元组数组,其中第一个成员来自原始索引 1,该数组是原始索引 0 中基于索引 1 分组的所有索引值。我可以强制解决这个问题,但我想以更 FP 的方式来做
最佳答案
使用 Seq.groupBy
结合一些 map 将得到想要的结果
[[1;3];
[4;3];
[1;2];
[7;2]]
|> Seq.groupBy (fun (a::b) -> b)
|> Seq.map (fun (a,b) -> a,b|> Seq.toList)
|> Seq.map (fun (a,b) -> a,b|>List.map (fun (c::d) -> c ))
关于f# - 聚合非规范化数据的惯用方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15292425/