如何创建一个与原始 map 类似但在 Fsharp 中交换键和值的新 map ?
例如,我有这个
let map1 =
[("A", "1"); ("B", "2"); ("C", "3");]
|> Map.ofList
并想得到这个:
let map2 =
[("1", "A"); ("2", "B"); ("3", "C");]
|> Map.ofList
感谢您的帮助!
最佳答案
也许你会接近这个决定:
let map1 = Map.ofList [("A", "1"); ("B", "2"); ("C", "3")]
map1 |> printfn "%A"
let rev map: Map<string,string> =
Map.fold (fun m key value -> m.Add(value,key)) Map.empty map
rev map1 |> printfn "%A"
打印:
map [("A", "1"); ("B", "2"); ("C", "3")]
map [("1", "A"); ("2", "B"); ("3", "C")]
链接:http://ideone.com/cfN2yH
关于dictionary - 在 fsharp 中交换映射中的键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30258611/