gpt4 book ai didi

list - 按秒元素对列表列表进行排序

转载 作者:行者123 更新时间:2023-12-04 17:39:02 25 4
gpt4 key购买 nike

当我尝试按第二个元素对列表进行排序时,我遇到了困难,就像这样

list = [[_,B,_,_,_],[_,A,_,_,_],[_,C,_,_,_]]

进入这个:
list = [[_,A,_,_,_],[_,B,_,_,_],[_,C,_,_,_]]

我试过了:
sortBy compare $ [([1,2]!!1),([2,3]!!1)]

但它过滤了秒元素并将其排序为 [2,3] .

最佳答案

您试图做的是对列表进行排序 [([1,2]!!1),([2,3]!!1)] ,相当于 [2, 3] , 来自 compare .你要做的是用sortBy使用首先获取第二个元素然后比较的函数:

sortBySecond = sortBy (\ a b -> compare (a !! 1) (b !! 1))

然后获取您拥有的列表并将此函数应用于它:
sortBySecond [[1, 2], [2, 3]]

您可以使用 on 使此功能更简洁。来自 Data.Function :
import Data.Function

sortBySecond = sortBy (compare `on` (!! 1))

您也可以使用 comparing来自 Data.Ord :
sortBySecond = sortBy $ comparing (!! 1)

关于list - 按秒元素对列表列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com