2017-03-07 254 views
1

我發現這個代碼對嵌套列表進行排序。對嵌套列表進行排序

to-report test 
    let z [[2 3] [1 9] [3 1] ] 
    report sort-by [(first ?1) < (first ?2)] z 
    end 

這個公式中的第一個和第一個是什麼?它說他們沒有被定義爲變量。

+0

類似的解決方案,但用於再次1和2:??http://stackoverflow.com/questions/31545569/sorting-list-of-lists-by - 特別指數內部列表 – Nety

回答

2

您是否正在使用NetLogo v6.0?您的代碼在v5.3.1中可用,但v6.0使用匿名記者。它看起來像:

to-report test 
    let z [[2 3] [1 9] [3 1] ] 
    report sort-by [[list1 list2] -> first list1 < first list2] z 
end 

查爾斯

+0

你好,問題是netlogo版本。謝謝你,但這只是排序前兩個元素,但我想排序所有列表嵌套列表中。 – Nety

+0

這樣做。它對列表中的所有子列表進行排序。 'z',按其各自的第一個元素。例如,如果'let z [[2 3] [1 9] [3 1] [0 100]',那麼排序會將[0 100]放在排序列表的開始位置。你最初的代碼建議你按照他們的第一個元素對子列表進行排序。那是你想要的嗎?將'list1'和'list2'視爲原始代碼中的'?1'和'?2'。 – Charles

+0

你是對的,它排序的完整列表。我一直在編碼時間過長,而我的大腦並沒有處理最後一個和第一個。在完成排序後,更改項目標識(第一個/最後一個)可以更改元素。代碼運行良好。謝謝 – Nety