如何使用Erlang对Map进行排序?

时间:2017-01-11 09:33:05

标签: sorting dictionary erlang

我有一张格式为“玩家姓名:得分”的地图。

我试图按分数(即值)对其进行排序

这可能吗?

1 个答案:

答案 0 :(得分:3)

地图元素没有排序,所以首先转换为对的列表,然后对元组的第二个元素进行排序:

1> Map = #{alice => 20, bob => 7, chi => 99, danielle => 22}.
#{alice => 20,bob => 7,chi => 99,danielle => 22}
2> List = maps:to_list(Map).
[{alice,20},{bob,7},{chi,99},{danielle,22}]
3> lists:keysort(2, List).
[{bob,7},{alice,20},{danielle,22},{chi,99}]