3
我有一个看起来像这样的列表:由内列出的特定索引排序列出清单
[["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"]]
我想用item 1
对列表进行排序。 (我知道它已经在复制/粘贴版本,但它可能并不总是)
sort
只是返回一个空列表(我甚至不知道为什么,但我想这是一个单独的问题),和sort-by
似乎不起作用,因为它需要一个解析为布尔值的记者。
有没有一个聪明的方法来做到这一点?或者,我需要首先获取我想要排序的值列表,然后对其进行排序,然后遍历该列表,在原始列表中创建相应项目值匹配的值的新列表?
伟大的答案!谢谢Seth – iusting
仍然非常有帮助,但我认为对于Netlogo> 6,'task'语法不再适用,我们需要'sort-with [a - > item 1 a] my-list'和'to-report sort -with [key lst] 报告排序依据[[?1?2] - >(runresult key?1)<(runresult key?2)] lst end'? – nehalem
谢谢nehalem!更新。 –