我有以下元组列表:
[("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
)排序。
答案 0 :(得分:10)
sortBy (comparing snd)
其中sortBy
位于List
且comparing
位于Data.Ord
。
答案 1 :(得分:5)
作为jleedev答案的替代方案:
sortBy (compare `on` snd)
其中sortBy
位于Data.List
且on
位于Data.Function
。
IMO这个公式稍微好一点,因为compare
只是Ord
的标准类方法,而on
是comparing
更常用的函数。但其中并不多。
答案 2 :(得分:0)
从Data.List 4.8.0.0开始,也可以如下使用sortOn
:sortOn snd
。