Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 按内部列表的特定索引对列表进行排序_Sorting_Netlogo - Fatal编程技术网

Sorting 按内部列表的特定索引对列表进行排序

Sorting 按内部列表的特定索引对列表进行排序,sorting,netlogo,Sorting,Netlogo,我有一个类似以下内容的列表: [["Local 7" 1 "say" "Say: Inspect Fences"] ["Local 7" 1 "do" "Do: Shepherd Cows"] ["Local 6" 1 "say" "Say: Shepherd Cows"] ["Local 6" 1 "do" "Do: Shepherd Cows"] ["Local 6" 2 "say" "Say: Shepherd Cows"] ["Local 6" 2 "do" "Do: Shepherd

我有一个类似以下内容的列表:

[["Local 7" 1 "say" "Say: Inspect Fences"] ["Local 7" 1 "do" "Do: Shepherd Cows"] ["Local 6" 1 "say" "Say: Shepherd Cows"] ["Local 6" 1 "do" "Do: Shepherd Cows"] ["Local 6" 2 "say" "Say: Shepherd Cows"] ["Local 6" 2 "do" "Do: Shepherd Cows"] ["Local 7" 2 "say" "Say: Inspect Fences"] ["Local 7" 2 "do" "Do: Shepherd Cows"] ["Local 6" 3 "say" "Say: Shepherd Cows"] ["Local 6" 3 "do" "Do: Shepherd Cows"] ["Local 7" 3 "say" "Say: Inspect Fences"] ["Local 7" 3 "do" "Do: Inspect Fences"]]
我想按
项目1
对列表进行排序。(我知道它已经在复制/粘贴版本中,但可能并不总是如此。)

sort
只返回一个空列表(我甚至不知道为什么,但我想这是一个单独的问题),而
sortby
似乎不起作用,因为它需要一个解析为布尔值的报告器


有没有一个聪明的方法可以做到这一点?或者我需要先得到一个我想要排序的值列表,然后对其排序,然后在该列表上迭代,在原始列表中创建一个新的值列表,其中相应的项值匹配?

编辑:用NetLogo 6语法更新

您可以非常轻松地将其转换为排序依据:

to-report sort-with [ key lst ]
  report sort-by [ [a b] -> (runresult key a) < (runresult key b) ] lst
end

回答得好!谢谢你,SethStill非常有用,但我认为对于Netlogo>6,任务语法不再有效,我们需要使用[a->item 1 a]对我的列表进行
排序,并使用[key lst]报告排序方式[1?2]->(runresult key?1)<(runresult key?2)]lst end进行报告排序,谢谢nehalem!更新。
sort-with [ l -> item 1 l ] my-list