【问题标题】:F#: Reduce a list of tuples by grouping one of the elements into arraysF#:通过将元素之一分组为数组来减少元组列表
【发布时间】:2014-10-13 05:48:10
【问题描述】:

我有一个元组列表,我想按其中一个元素作为键对其进行分组。例如,如果我有这个元组列表:

[(A, "hello"), (A, "stack"), (A,"over"), (A, "flow"), (B, "how"), (B, "你"), (C, "做")]

我想得到以下形式的结果:

[(A, ["hello", "stack", "over", "flow"]), (B, ["how", "you"]), (C, [“做”])]

我是 F# 的新手,所以我完全不知道如何做到这一点。提前谢谢你。

干杯

【问题讨论】:

标签: arrays list f# tuples


【解决方案1】:

我认为您对列表元素使用了不正确的分隔符 - 您需要使用 , 而不是 ;

要获得结果,请使用这个 sn-p:

[("A", "hello"); ("A", "stack"); ("A","over"); ("A", "flow"); ("B", "how"); ("B", "you"); ("C", "doin")]
  |> Seq.groupBy fst 
  |> Seq.map (fun (key,groupping) -> key, (groupping |> Seq.map snd |> Seq.toList)) 
  |> Seq.toList

【讨论】:

    猜你喜欢
    • 2014-07-01
    • 2017-09-11
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 2017-07-30
    相关资源
    最近更新 更多