You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nim中仅基于元组首元素对元组序列按字母排序?

Nim 序列排序方法

要对包含元组的序列按元组第一个元素排序,你可以利用Nim标准库的排序工具实现,以下是几种可行方式:

方式1:利用元组自然排序(简洁写法)

Nim的元组默认会按元素顺序依次比较,因此直接调用sorted方法就能得到按第一个元素排序后的新序列:

import algorithm

let my_seq = @[("a", "hello"), ("c", "world"), ("b", "to")]
let sorted_seq = my_seq.sorted
echo sorted_seq  # 输出:@[("a", "hello"), ("b", "to"), ("c", "world")]

方式2:自定义比较逻辑(灵活扩展)

如果需要明确指定排序依据(比如后续要调整排序规则),可以自定义比较函数:

import algorithm

let my_seq = @[("a", "hello"), ("c", "world"), ("b", "to")]
let sorted_seq = my_seq.sorted(proc(a, b: tuple[key: string, val: string]): int =
  cmp(a[0], b[0])
)
echo sorted_seq

方式3:原地排序(针对可变序列)

如果你的序列是用var声明的可变序列,可以直接调用sort过程原地修改:

import algorithm

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

注意:sorted返回新序列,适合处理let声明的不可变序列;sort是原地修改,仅适用于var声明的可变序列。

内容的提问来源于stack exchange,提问作者Houdiee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 06:54:57