- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据每个元组中的第 4 个元素对我的元组列表进行排序。第四个元素包含一个人名字符串。我想将包含相同名称的元组放在一起。排序前的元组列表示例如下:
[("A",100,"Q",3,"Todd",2.0),
("B",203,"R",3,"Rachel",1.66),
("B",273,"F",1,"Mike",2.66),
("A",200,"P",1,"Rachel",0.0),
("A",549,"D",3,"Todd",2.0),
("B",220,"S",3,"Todd",4.0),
("B",101,"M",3,"Jon",3.33),
("A",999,"N",3,"Rachel",1.33)]
我也希望它看起来像:
[("A",100,"Q",3,"Todd",2.0),
("A",549,"D",3,"Todd",2.0),
("B",220,"S",3,"Todd",4.0),
("B",203,"R",3,"Rachel",1.66),
("A",200,"P",1,"Rachel",0.0),
("A",999,"N",3,"Rachel",1.33),
("B",273,"F",1,"Mike",2.66),
("B",101,"M",3,"Jon",3.33)]
我需要让所有包含 Todd 的元组彼此相邻,以此类推。名称显示的顺序无关紧要,只要它们彼此相邻即可。
sortedList= show . sortBy byName . (map stringToTuple) . (map words) . lines
这是我调用排序依据的代码行。我知道我需要创建一个函数 byName
以某种方式确定元组是否共享一个通用名称。
任何帮助引导我进入编写 byName
方法的正确方向将不胜感激。谢谢
最佳答案
从 sortBy
类型开始:
> :t sortBy
sortBy :: (a -> a -> Ordering) -> [a] -> [a]
这意味着 byName
需要具有类型 a -> a -> Ordering
。在这种情况下, a
是一个元组,其第五个元素的类型为 String
; byName
将忽略其他字段。所以你需要定义一个函数,比如
type MyType = (String, Int, String, Int, String, Double)
byName :: MyType -> MyType -> Ordering
byName (_, _, _, _, a, _) (_, _, _, _, b, _) = ...
我将把 ...
替换为正确的表达式作为练习。
(Recall that Ordering
is a type with three values, LT
, EQ
, and GT
, where byName a b == LT
if a < b
, byName a b == EQ
if a == b
, and byName a b == GT
if a > b
. In your case, two tuples will compare as equal as long as they have同名。听起来您实际上并不关心 byName
是否返回 LT
或 GT
否则。)
关于haskell - 使用 sortBy 对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52506258/
我有一个向量列表。但现在我想使用 sortBy 函数按长度对这个向量列表进行排序。我已经拥有的是: import Data.List vectorLength::(Int,Int)->Float ve
我想按名称列对集合进行排序。使用 sortBy() 方法不起作用。 $collection = \App\Http\Resources\MyResource::collection($test
我有这个代码 $list = Elements::where('list_id', $id)->with('visitors')->get()->sortBy(function
我想知道为什么 Scala Set 没有 sortBy 方法,而 Seq 或 List 因为它也扩展了 Iterable... 最佳答案 Set 是一种有点有序(这就是它可迭代的原因)但未排序的元素集
它基本上显示来自mysql数据库的数据并使用 $sortby = $_GET['sort']; 我得到的错误是 Notice: Undefined index: sort in /home/45074
我有一个带有这个 ng-repeat 的表 ticket in filteredTickets = (vm.tickets | filter : vm.search | orderBy : vm.pr
HTML: Date Progress adminUsername 指令: .directive('reportrowgroup', function () { r
我正在尝试对对象进行排序,但似乎无法在排序后保留每个对象的键名称。 这是我正在排序的示例 json series_data: { embeded: { objectNameA: {
这是一个源自another question的问题.我需要能够动态传递要在具有左连接的 Slick 查询中进行排序的列。这种特殊情况下的问题是左连接表变得可选,我不知道如何处理。如果我使表 Compa
假设函数的输入是: [(6,-275),(3,123),(7,1000),(9,-572),(3,333),(1,-23)] 输出应该是: [(9,-572),(6,-275),(1,-23),(3,
好的,我有一个 Controller ,其模型设置如下: App.MyModel = DS.Model.extend({ myOtherProperty: attr(), mySort
我对 F# 还很陌生,使用了 Seq.sortBy 函数,但是它按升序对我的列表进行排序。如何使用 Seq.sort 按降序对其进行排序? 例如,示例代码将是... let DisplayList =
我使用 underscore 的 sortBy() 对字符串的 array 进行排序。但我想比其他字符串更早地对几个(硬编码的)字符串进行排序 - 我将向用户显示输出,并且将相关字符串放在前面会更自然
Haskell 的 sortBy 相当于什么?在 Coq 中? 总的来说,我发现 Coq 标准库的排序令人困惑。 我希望对排序列表进行一些“公理化”,以及不同排序的可用性,我可以为其提供排序功能。 然
我有一个带有子集合的集合,例如: + +--- name: 1a8 Lorem Ipsum + +--- name: 1a2 Lorem Ipsum + +--- name: 1a10 Lorem I
我正在使用 Primefaces + JSF 开发一个应用程序。我的数据表可以工作,但在排序 sortBy= 时出现问题,我尝试了 sortBy="#{pc.rota}" 但它也不起作用: 数据表显示
我想将 List.sortBy 接受的参数传递给另一个函数。我的代码看起来像这样: //Scala def sortAndMore(list: List[(String, _)], sortFn: O
我正在尝试根据每个元组中的第 4 个元素对我的元组列表进行排序。第四个元素包含一个人名字符串。我想将包含相同名称的元组放在一起。排序前的元组列表示例如下: [("A",100,"Q",3,"Todd"
我有一个带有子集合的集合,例如: + +--- name: 1a8 Lorem Ipsum + +--- name: 1a2 Lorem Ipsum + +--- name: 1a10 Lorem I
也许我需要将数组转换为真实日期才能使其工作?如果使用 moment 性能会成为问题,因为我还需要对数组进行排序。 const arr = [{ "created_at": "2017-07-19
我是一名优秀的程序员,十分优秀!