如何仅根据nim中元组的第一项按字母顺序对元组数组进行排序?

问题描述 投票:0回答:1

如果我有一个序列

let my_seq = @[("a", "hello"), ("c", "world"), ("b", "to")]

我该如何排序才能返回:

let my_seq = @[("a", "hello"), ("b", "to")] ("c", "world")

尝试用谷歌搜索,但基本上没有 nim 的资源

sorting tuples sequence nim-lang
1个回答
0
投票

使用标准库中的

sort
过程。通过提供比较函数来自定义它,该函数定义如何将项目相互比较,并返回一个指示其顺序的整数。

例如,按元组的第一个元素(位于位置

0
)进行比较:

import std/algorithm

var my_seq = @[("a", "hello"), ("c", "world"), ("b", "to")]

proc myCmp(x, y: (string, string)): int = cmp(x[0], y[0])

my_seq.sort(myCmp)

echo(my_seq)
@[("a", "hello"), ("b", "to"), ("c", "world")]

演示

请注意,我已将

let
更改为
var
以使序列可变。

© www.soinside.com 2019 - 2024. All rights reserved.