按该列表中元组的`end`命令列表:

时间:2011-05-29 21:40:50

标签: list haskell

我有以下元组列表:

[("a",6),("b",1),("c",2),("d",4),("e",1),("f",1),("g",5),("h",3),("i",1),("j",2)]

但希望通过元组的order元素snd列表中的元组。这样,我得到了类似的答案:

[("b",1),("e",1),("f",1),("i",1),("c",2),("j",2),("h",3),("d",4),("g",5),("a",6)]

(即列表按每个元组的第二个(snd)排序。

3 个答案:

答案 0 :(得分:10)

sortBy (comparing snd)

其中sortBy位于Listcomparing位于Data.Ord

答案 1 :(得分:5)

作为jleedev答案的替代方案:

sortBy (compare `on` snd)

其中sortBy位于Data.Liston位于Data.Function

IMO这个公式稍微好一点,因为compare只是Ord的标准类方法,而oncomparing更常用的函数。但其中并不多。

答案 2 :(得分:0)

从Data.List 4.8.0.0开始,也可以如下使用sortOnsortOn snd