D.N*_*bon 11
功能列表:keysort/2适合像这样的手套.
1> lists:keysort(2, [{a,b},{b,a},{b,b}]).
[{b,a},{a,b},{b,b}]
2> lists:keysort(2, [{1,14},{3,10},{2,13}]).
[{3,10},{2,13},{1,14}]
按第二个元素排序的最简单方法是定义自己的排序函数,该函数可以按如下方式工作:
fun({KeyA,ValA}, {KeyB,ValB}) -> {ValA,KeyA} =< {ValB,KeyB} end.
Run Code Online (Sandbox Code Playgroud)
称之为lists:sort/2:
1> lists:sort(fun({KeyA,ValA}, {KeyB,ValB}) -> {ValA,KeyA} =< {ValB,KeyB} end., [{a,b},{b,a},{b,b}]).
[{b,a},{a,b},{b,b}]
Run Code Online (Sandbox Code Playgroud)
这是因为Erlang将始终自动比较从第一个元素到最后一个元素的元组.该函数交换第一个和第二个元素,因此第二个元素作为第一个比较点.然后,您的dict中的Key将用于订购值相同的条目.