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

如何在Julia中对字典数组(Vector{Dict})按指定字段排序?

在Julia中对字典数组按指定字段排序的正确方法

要对Vector{Dict}按字典的某个字段(比如"firstName")排序,你需要给sort函数的by参数传递一个匿名函数,用来提取每个字典中用于排序的字段值。

正确示例

假设你的字典数组变量是Students,执行以下代码即可得到按firstName字母顺序排序的结果:

sorted_students = sort(Students, by = x -> x["firstName"])

运行后输出会和你期望的一致:

3-element Vector{Dict{String, Any}}:
 Dict("firstName" => "beth", "age" => 20)
 Dict("firstName" => "matt", "age" => 50)
 Dict("firstName" => "roger", "age" => 45)

原地排序(修改原数组)

如果不需要保留原数组,想直接修改原数组实现排序,使用sort!(带感叹号的原地版本):

sort!(Students, by = x -> x["firstName"])

为什么你的写法报错?

你之前尝试的几种写法都不符合Juliasort函数的参数要求:

  • sort(Students[:],by=["firstName"]):by参数需要接收一个函数,而不是数组,数组无法作为提取排序依据的逻辑。
  • sort(Students[:],by="firstName"):字符串不是合法的函数类型,Julia无法直接通过字符串自动提取字典的键值,必须显式写出提取逻辑。
  • sort(Students,["firstName"]):第二个位置参数是用于自定义比较逻辑的lt函数,你没有指定by关键字,导致参数不匹配报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:37:10